From tismer at centera.de Sat May 1 00:11:31 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 00:11:31 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/distutils dist.py, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/distutils In directory centera.de:/tmp/cvs-serv13270/src/Lib/distutils Modified Files: dist.py Log Message: checking Python 2.2.3 back in, almost unmodified. The only modifications are in PCbuild, and the additon of the new Stackless for 2.3.3 trunk. Purpose: I will apply all current changes to 2.3.3 back to 2.2.3. Since I'm unsure how to do this on the current dev trunk by CVS, and since I never imported 2.2.3 before, I prefer to do it this way, using the merge program explicitly. _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:40 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:40 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/PC python.mk,1.2,1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/PC In directory centera.de:/home/tismer/slpdev/src/2.2/src/PC Modified Files: python.mk Log Message: hopefully this is now a base version Index: python.mk =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/PC/python.mk,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** python.mk 22 Jul 2002 23:24:51 -0000 1.2 --- python.mk 1 May 2004 00:44:36 -0000 1.3 *************** *** 1,5 **** ! project : n:\python\python-1.5.1\pc\wat_os2\pyth_os2.exe n:\python\python-1.& ! 5.1\pc\wat_dos\pyth_dos.exe .SYMBOLIC ! ! !include n:\python\python-1.5.1\pc\wat_os2\pyth_os2.mk1 ! !include n:\python\python-1.5.1\pc\wat_dos\pyth_dos.mk1 --- 1,5 ---- ! project : n:\python\python-1.5.1\pc\wat_os2\pyth_os2.exe n:\python\python-1.& ! 5.1\pc\wat_dos\pyth_dos.exe .SYMBOLIC ! ! !include n:\python\python-1.5.1\pc\wat_os2\pyth_os2.mk1 ! !include n:\python\python-1.5.1\pc\wat_dos\pyth_dos.mk1 _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:49 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:49 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/framer README.txt, NONE, 1.1 TODO.txt, NONE, 1.1 example.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/framer In directory centera.de:/home/tismer/slpdev/src/2.2/src/Tools/framer Added Files: README.txt TODO.txt example.py Log Message: added files --- NEW FILE: README.txt --- framer is a tool to generate boilerplate code for C extension types. The boilerplate is generated from a specification object written in Python. The specification uses the class statement to describe the extension module and any extension types it contains. From the specification, framer can generate all the boilerplate C code, including function definitions, argument handling code, and type objects. --- NEW FILE: TODO.txt --- Add spec for getsets. Generate a distutils setup script. Handle operator overloading. Generate traverse and clear methods for GC. Handle mapping, sequence, buffer protocols. Finish the todo list. --- NEW FILE: example.py --- """Generate the skeleton for cStringIO as an example of framer.""" from framer.bases import Module, Type from framer.member import member class cStringIO(Module): """A simple fast partial StringIO replacement. This module provides a simple useful replacement for the StringIO module that is written in C. It does not provide the full generality of StringIO, but it provides enough for most applications and is especially useful in conjunction with the pickle module. Usage: from cStringIO import StringIO an_output_stream = StringIO() an_output_stream.write(some_stuff) ... value = an_output_stream.getvalue() an_input_stream = StringIO(a_string) spam = an_input_stream.readline() spam = an_input_stream.read(5) an_input_stream.seek(0) # OK, start over spam = an_input_stream.read() # and read it all """ __file__ = "cStringIO.c" def StringIO(o): """Return a StringIO-like stream for reading or writing""" StringIO.pyarg = "|O" class InputType(Type): "Simple type for treating strings as input file streams" abbrev = "input" struct = """\ typedef struct { PyObject_HEAD char *buf; int pos; int size; PyObject *pbuf; } InputObject; """ def flush(self): """Does nothing""" def getvalue(self): """Get the string value. If use_pos is specified and is a true value, then the string returned will include only the text up to the current file position. """ def isatty(self): """Always returns False""" def read(self, s): """Return s characters or the rest of the string.""" read.pyarg = "|i" def readline(self): """Read one line.""" def readlines(self, hint): """Read all lines.""" readlines.pyarg = "|i" def reset(self): """Reset the file position to the beginning.""" def tell(self): """Get the current position.""" def truncate(self, pos): """Truncate the file at the current position.""" truncate.pyarg = "|i" def seek(self, position, mode=0): """Set the current position. The optional mode argument can be 0 for absolute, 1 for relative, and 2 for relative to EOF. The default is absolute. """ seek.pyarg = "i|i" def close(self): pass class OutputType(InputType): "Simple type for output strings." abbrev = "output" struct = """\ typedef struct { PyObject_HEAD char *buf; int pos; int size; int softspace; } OutputObject; """ softspace = member() def close(self): """Explicitly release resources.""" def write(self, s): """Write a string to the file.""" # XXX Hack: writing None resets the buffer def writelines(self, lines): """Write each string in lines.""" cStringIO.gen() _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:12 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:12 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj/Documentation PackageManager.gif, 1.1, 1.2 python.gif, 1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj/Documentation In directory centera.de:/tmp/cvs-serv18709/src/Mac/OSXResources/app/Resources/English.lproj/Documentation Modified Files: PackageManager.gif python.gif Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: PackageManager.gif =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/PackageManager.gif,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsnRLjxc and /tmp/cvsIyr6We differ Index: python.gif =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/python.gif,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsSgPg0b and /tmp/cvsqyKVTd differ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 20:47:37 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 20:47:37 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/pickling prickelpit.c, 1.78, 1.79 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/pickling In directory centera.de:/tmp/cvs-serv21006/2.3/dev/Stackless/pickling Modified Files: prickelpit.c Log Message: cleanup Index: prickelpit.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/pickling/prickelpit.c,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -d -r1.78 -r1.79 *** prickelpit.c 3 May 2004 16:53:39 -0000 1.78 --- prickelpit.c 4 May 2004 18:47:35 -0000 1.79 *************** *** 1029,1039 **** { return slp_register_execute(&PyFrame_Type, "eval_frame", ! PyEval_EvalFrame, REF_INVALID_EXEC(eval_frame)) || slp_register_execute(&PyFrame_Type, "eval_frame_value", ! PyEval_EvalFrame_value, REF_INVALID_EXEC(eval_frame_value)) || slp_register_execute(&PyFrame_Type, "eval_frame_noval", ! PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval)) || slp_register_execute(&PyFrame_Type, "eval_frame_iter", ! PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter)) || init_type(&wrap_PyFrame_Type, initchain); } --- 1029,1039 ---- { return slp_register_execute(&PyFrame_Type, "eval_frame", ! PyEval_EvalFrame, REF_INVALID_EXEC(eval_frame)) || slp_register_execute(&PyFrame_Type, "eval_frame_value", ! PyEval_EvalFrame_value, REF_INVALID_EXEC(eval_frame_value)) || slp_register_execute(&PyFrame_Type, "eval_frame_noval", ! PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval)) || slp_register_execute(&PyFrame_Type, "eval_frame_iter", ! PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter)) || init_type(&wrap_PyFrame_Type, initchain); } *************** *** 1490,1494 **** #define initchain init_enumtype ! #endif */ PY_VERSION_HEX >= 0x02030000 */ /****************************************************** --- 1490,1494 ---- #define initchain init_enumtype ! #endif /* PY_VERSION_HEX >= 0x02030000 */ /****************************************************** *************** *** 1618,1622 **** #define initchain init_rangeitertype ! #endif */ PY_VERSION_HEX >= 0x02030000 */ --- 1618,1622 ---- #define initchain init_rangeitertype ! #endif /* PY_VERSION_HEX >= 0x02030000 */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 03:54:35 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 03:54:35 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module stacklessmodule.c, 1.169, 1.170 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/module In directory centera.de:/tmp/cvs-serv2636/dev/Stackless/module Modified Files: stacklessmodule.c Log Message: _get_all_objects works for all versions in our scope Index: stacklessmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/stacklessmodule.c,v retrieving revision 1.169 retrieving revision 1.170 diff -C2 -d -r1.169 -r1.170 *** stacklessmodule.c 1 May 2004 20:24:10 -0000 1.169 --- stacklessmodule.c 2 May 2004 01:54:33 -0000 1.170 *************** *** 671,675 **** /* finding refcount problems */ ! #if defined(Py_TRACE_REFS) && defined(PyAPI_23) static char _get_refinfo__doc__[] = --- 671,675 ---- /* finding refcount problems */ ! #if defined(Py_TRACE_REFS) static char _get_refinfo__doc__[] = *************** *** 677,689 **** "refcount, ref_total, computed total)"; - extern PyObject * _Py_RefChain; static PyObject * _get_refinfo(PyObject *self) { PyObject *op, *max=Py_None; ! PyObject *refchain = _Py_RefChain; int ref_total = _Py_RefTotal; int computed_total = 0; for (op = refchain->_ob_next; op != refchain; op = op->_ob_next) { if (op->ob_refcnt > max->ob_refcnt) --- 677,691 ---- "refcount, ref_total, computed total)"; static PyObject * _get_refinfo(PyObject *self) { PyObject *op, *max=Py_None; ! PyObject *refchain = Py_None; int ref_total = _Py_RefTotal; int computed_total = 0; + while (refchain->ob_type != NULL) + refchain = refchain->_ob_next; + for (op = refchain->_ob_next; op != refchain; op = op->_ob_next) { if (op->ob_refcnt > max->ob_refcnt) *************** *** 752,756 **** _peek__doc__}, #endif ! #if defined(Py_TRACE_REFS) && defined(PyAPI_23) {"_get_refinfo", (PCF)_get_refinfo, METH_NOARGS, _get_refinfo__doc__}, --- 754,758 ---- _peek__doc__}, #endif ! #if defined(Py_TRACE_REFS) {"_get_refinfo", (PCF)_get_refinfo, METH_NOARGS, _get_refinfo__doc__}, _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:47 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:47 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac Log Message: Directory /home/cvs/slpdev/src/2.2/src/Lib/plat-mac added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Thu May 6 22:07:13 2004 From: tismer at centera.de (Christian Tismer) Date: Thu, 06 May 2004 22:07:13 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/demo counter.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/demo In directory centera.de:/tmp/cvs-serv27705/2.3/dev/Stackless/demo Added Files: counter.py Log Message: added a funny little example on how to sort numbers which tasklets :-) --- NEW FILE: counter.py --- # a little example of tasklets and channels. # don't use this in production code, it is really nonsense :-) # We want to sort some random numbers using tasklets. # The idea is to create a bulk of tasklets which call schedule() # a number of times. When the count is at zero, the tasklet # send its result over a channel. # Guess the result! import random from stackless import * numbers = range(20) random.shuffle(numbers) print numbers # [16, 13, 12, 5, 6, 4, 7, 1, 9, 17, 15, 14, 10, 8, 0, 3, 11, 18, 2, 19] def counter(n, ch): for i in xrange(n): schedule() ch.send(n) ch=stackless.channel() for each in numbers: stackless.tasklet(counter)(each, ch) stackless.run() # now we should have a sorted chain of results in ch while ch.queue: print ch.receive() _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:16 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:16 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/world world, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/world In directory centera.de:/tmp/cvs-serv18709/src/Tools/world Modified Files: world Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: world =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Tools/world/world,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** world 1 May 2004 00:44:41 -0000 1.2 --- world 1 May 2004 01:21:10 -0000 1.3 *************** *** 85,89 **** --- 85,93 ---- """ + <<<<<<< ../../2.2/src/./Tools/world/world + __version__ = '$Revision$' + ======= __version__ = '$Revision$' + >>>>>>> ././Tools/world/world _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:14 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:14 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/Dist README.txt, 1.1, NONE build, 1.2, NONE example-pimp-database.plist, 1.1, NONE makedmg, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/Dist In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/Dist Removed Files: README.txt build example-pimp-database.plist makedmg Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- README.txt DELETED --- --- build DELETED --- --- example-pimp-database.plist DELETED --- --- makedmg DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:07 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:07 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/distutils/command checkdep.py, NONE, 1.1 register.py, NONE, 1.1 wininst-6.exe, NONE, 1.1 wininst-7.1.exe, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/distutils/command In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/distutils/command Added Files: checkdep.py register.py wininst-6.exe wininst-7.1.exe Log Message: added files --- NEW FILE: checkdep.py --- """distutils.command.x Implements the Distutils 'x' command. """ # created 2000/mm/dd, John Doe __revision__ = "$Id: checkdep.py,v 1.1 2004/05/01 00:54:03 tismer Exp $" from distutils.core import Command class DependencyFailure(Exception): pass class VersionTooOld(DependencyFailure): pass class VersionNotKnown(DependencyFailure): pass class checkdep (Command): # Brief (40-50 characters) description of the command description = "check package dependencies" # List of option tuples: long name, short name (None if no short # name), and help string. # Later on, we might have auto-fetch and the like here. Feel free. user_options = [] def initialize_options (self): self.debug = None # initialize_options() def finalize_options (self): pass # finalize_options() def run (self): from distutils.version import LooseVersion failed = [] for pkg, ver in self.distribution.metadata.requires: if pkg == 'python': if ver is not None: # Special case the 'python' package import sys thisver = LooseVersion('%d.%d.%d'%sys.version_info[:3]) if thisver < ver: failed.append(((pkg,ver), VersionTooOld(thisver))) continue # Kinda hacky - we should do more here try: mod = __import__(pkg) except Exception, e: failed.append(((pkg,ver), e)) continue if ver is not None: if hasattr(mod, '__version__'): thisver = LooseVersion(mod.__version__) if thisver < ver: failed.append(((pkg,ver), VersionTooOld(thisver))) else: failed.append(((pkg,ver), VersionNotKnown())) if failed: raise DependencyFailure, failed # run() # class x --- NEW FILE: register.py --- """distutils.command.register Implements the Distutils 'register' command (register with the repository). """ # created 2002/10/21, Richard Jones __revision__ = "$Id: register.py,v 1.1 2004/05/01 00:54:03 tismer Exp $" import sys, os, string, urllib2, getpass, urlparse import StringIO, ConfigParser from distutils.core import Command from distutils.errors import * class register(Command): description = ("register the distribution with the Python package index") DEFAULT_REPOSITORY = 'http://www.python.org/pypi' user_options = [ ('repository=', 'r', "url of repository [default: %s]"%DEFAULT_REPOSITORY), ('list-classifiers', None, 'list the valid Trove classifiers'), ('show-response', None, 'display full response text from server'), ] boolean_options = ['verify', 'show-response', 'list-classifiers'] def initialize_options(self): self.repository = None self.show_response = 0 self.list_classifiers = 0 def finalize_options(self): if self.repository is None: self.repository = self.DEFAULT_REPOSITORY def run(self): self.check_metadata() if self.dry_run: self.verify_metadata() elif self.list_classifiers: self.classifiers() else: self.send_metadata() def check_metadata(self): """Ensure that all required elements of meta-data (name, version, URL, (author and author_email) or (maintainer and maintainer_email)) are supplied by the Distribution object; warn if any are missing. """ metadata = self.distribution.metadata missing = [] for attr in ('name', 'version', 'url'): if not (hasattr(metadata, attr) and getattr(metadata, attr)): missing.append(attr) if missing: self.warn("missing required meta-data: " + string.join(missing, ", ")) if metadata.author: if not metadata.author_email: self.warn("missing meta-data: if 'author' supplied, " + "'author_email' must be supplied too") elif metadata.maintainer: if not metadata.maintainer_email: self.warn("missing meta-data: if 'maintainer' supplied, " + "'maintainer_email' must be supplied too") else: self.warn("missing meta-data: either (author and author_email) " + "or (maintainer and maintainer_email) " + "must be supplied") def classifiers(self): ''' Fetch the list of classifiers from the server. ''' response = urllib2.urlopen(self.repository+'?:action=list_classifiers') print response.read() def verify_metadata(self): ''' Send the metadata to the package index server to be checked. ''' # send the info to the server and report the result (code, result) = self.post_to_server(self.build_post_data('verify')) print 'Server response (%s): %s'%(code, result) def send_metadata(self): ''' Send the metadata to the package index server. Well, do the following: 1. figure who the user is, and then 2. send the data as a Basic auth'ed POST. First we try to read the username/password from $HOME/.pypirc, which is a ConfigParser-formatted file with a section [server-login] containing username and password entries (both in clear text). Eg: [server-login] username: fred password: sekrit Otherwise, to figure who the user is, we offer the user three choices: 1. use existing login, 2. register as a new user, or 3. set the password to a random string and email the user. ''' choice = 'x' username = password = '' # see if we can short-cut and get the username/password from the # config config = None if os.environ.has_key('HOME'): rc = os.path.join(os.environ['HOME'], '.pypirc') if os.path.exists(rc): print 'Using PyPI login from %s'%rc config = ConfigParser.ConfigParser() config.read(rc) username = config.get('server-login', 'username') password = config.get('server-login', 'password') choice = '1' # get the user's login info choices = '1 2 3 4'.split() while choice not in choices: print '''We need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: ''', choice = raw_input() if not choice: choice = '1' elif choice not in choices: print 'Please choose one of the four options!' if choice == '1': # get the username and password while not username: username = raw_input('Username: ') while not password: password = getpass.getpass('Password: ') # set up the authentication auth = urllib2.HTTPPasswordMgr() host = urlparse.urlparse(self.repository)[1] auth.add_password('pypi', host, username, password) # send the info to the server and report the result code, result = self.post_to_server(self.build_post_data('submit'), auth) print 'Server response (%s): %s'%(code, result) # possibly save the login if os.environ.has_key('HOME') and config is None and code == 200: rc = os.path.join(os.environ['HOME'], '.pypirc') print 'I can store your PyPI login so future submissions will be faster.' print '(the login will be stored in %s)'%rc choice = 'X' while choice.lower() not in 'yn': choice = raw_input('Save your login (y/N)?') if not choice: choice = 'n' if choice.lower() == 'y': f = open(rc, 'w') f.write('[server-login]\nusername:%s\npassword:%s\n'%( username, password)) f.close() try: os.chmod(rc, 0600) except: pass elif choice == '2': data = {':action': 'user'} data['name'] = data['password'] = data['email'] = '' data['confirm'] = None while not data['name']: data['name'] = raw_input('Username: ') while data['password'] != data['confirm']: while not data['password']: data['password'] = getpass.getpass('Password: ') while not data['confirm']: data['confirm'] = getpass.getpass(' Confirm: ') if data['password'] != data['confirm']: data['password'] = '' data['confirm'] = None print "Password and confirm don't match!" while not data['email']: data['email'] = raw_input(' EMail: ') code, result = self.post_to_server(data) if code != 200: print 'Server response (%s): %s'%(code, result) else: print 'You will receive an email shortly.' print 'Follow the instructions in it to complete registration.' elif choice == '3': data = {':action': 'password_reset'} data['email'] = '' while not data['email']: data['email'] = raw_input('Your email address: ') code, result = self.post_to_server(data) print 'Server response (%s): %s'%(code, result) def build_post_data(self, action): # figure the data to send - the metadata plus some additional # information used by the package server meta = self.distribution.metadata data = { ':action': action, 'metadata_version' : '1.0', 'name': meta.get_name(), 'version': meta.get_version(), 'summary': meta.get_description(), 'home_page': meta.get_url(), 'author': meta.get_contact(), 'author_email': meta.get_contact_email(), 'license': meta.get_licence(), 'description': meta.get_long_description(), 'keywords': meta.get_keywords(), 'platform': meta.get_platforms(), 'classifiers': meta.get_classifiers(), 'download_url': meta.get_download_url(), } return data def post_to_server(self, data, auth=None): ''' Post a query to the server, and return a string response. ''' # Build up the MIME payload for the urllib2 POST data boundary = '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254' sep_boundary = '\n--' + boundary end_boundary = sep_boundary + '--' body = StringIO.StringIO() for key, value in data.items(): # handle multiple entries for the same name if type(value) != type([]): value = [value] for value in value: value = str(value) body.write(sep_boundary) body.write('\nContent-Disposition: form-data; name="%s"'%key) body.write("\n\n") body.write(value) if value and value[-1] == '\r': body.write('\n') # write an extra newline (lurve Macs) body.write(end_boundary) body.write("\n") body = body.getvalue() # build the Request headers = { 'Content-type': 'multipart/form-data; boundary=%s'%boundary, 'Content-length': str(len(body)) } req = urllib2.Request(self.repository, body, headers) # handle HTTP and include the Basic Auth handler opener = urllib2.build_opener( urllib2.HTTPBasicAuthHandler(password_mgr=auth) ) data = '' try: result = opener.open(req) except urllib2.HTTPError, e: if self.show_response: data = e.fp.read() result = e.code, e.msg except urllib2.URLError, e: result = 500, str(e) else: if self.show_response: data = result.read() result = 200, 'OK' if self.show_response: print '-'*75, data, '-'*75 return result --- NEW FILE: wininst-6.exe --- MZ? $  ????pB??? ?E???VhnA?}o???? S}_Jp???A??"4?N*???>;??v? K?? ??????V??.? ?W?N ?????GF>?O?M?????U??D=????c??lt Hn?M?mw??< h??1s?hL*??i???e? ? ???0Q?Y?u|? ?@]?7 o?? ?j??6??[??9?:d? ????????3??s?l77`?h?9_%???!,?+????a FOOj??Q?hs?< uO??-?F at O?h` r??6_??P?d??3}h??PC??r?ksH?m?6O? ?V?????Im??t#!P???Qx*??VL???h?,+?F?9??MNl}@???\d V" xSN*p???d?0$9t@?G???x,?[?8?G? m?B???9V2 :y????P ???l??HQ?RM?H'???? ?4,^S? !??P!?????BtLW3 ??????|W?_????Lm????[? A?8y???F!?????8s??O*  ??m&"cW |???B7??v8@? t?-C??q?Z?c??????loG?] R Y???u?v y??Q ??7JjS?t??5?dVZ*???z??Y????????????uuN(A??-?????????????? ? (mo"R???|uH???w^??????K?e:?,?;?G(Q"???h?`?=f-??\aM?????W`?:?`+?]???H???????E6? ?S???V[???3?/FV0r??u@Rx|?????5?cdV:???a=S??`???q??P|? ??$????;?qS^ q???B?+;8zg?s?)?x????F,?h?7a!??H?)a?J????? ? ?>?6??2?*????8!???{E ??J??e???? ?3?????t{p{??$z.X?)F?n!5??#?@?~?b@?G hD? 9?? ?4VHaCa?V?t`*M[ '?1V?VS5?#/2S??`/$Mz?/<^?Y??t?-?-V?? F???& 2fBI?) S?? ?]*?k??g???8???'??74;???t=?^?C,?P? >a???/Dx}Lv?V??X??j ?1h? ?h?t??x???m??+'l???w(%4???Z???5sk???5??g?8^4@?~???(4?D?,?zF?6uI?( E?nb?????Pa?? X??;SC???;?Z?f??l?C????n? j????q?>? ???V?????[m???V???"hfP?-J.'?%h~U????yK _."?0??????i'}{j?E?]%35(???@????@,?*?W?9?F?q??;??????????~??@??)???]????~2??p????uX??????? ??U?K?[D?]P???V???W?t3???*???@A ?=???j???V???? ??Sx???*??5?UA?#v/?m? ? ??*4h?,,?S??=b?C???,??J?n?v???R?F ??^??a?hJ?&??;???>9Q??i4/g+e???+????18???(??4 ??W??3???A??he?????d??7djh??!R??=? ?????Nm?=1?y-=?>? )\dC?S?%??=?B_??? C???c???D N?#Fj?<0\? 2W??86nW?2?9?E?3U???)??L? ???????'?rkr-~??3 ?L8? Y?=??8?k!hAZ??`?4aWK 1???m? ????eB??=T?@??6???TQ h0E???No[??h??8?0y???l2?h??P? ?f??5,?O?J?????H tP?X?&?\D???8%C V"?9W?A?(dn?v?V$ ? ??} ??;?Z_Bb ?~n??8? ?WB??V?~(9~$$ ????v?> ???[H?n[{?f@v?^ y???F?=??C????b??/?t!?V???????_?h?? 5}W? ;?)&@|??WV?8?h????u?U 5?,?\j????"OFs???\C?H,R.lk???H ? 9??%?? c???? ??J???%[{?\ ?I4 X?!??;?HB?:?u????H7???H.?H9 ???!? te5?12;5H0",s2??@??D??5?B?dk????????epf??h]?P???LUl?7H, ??G5? P?+9r??? ??<??t?????Z?/?[?$? ?? ;?sC???9?"?9?n>r?!?|]? ?h????#??j?x?uB???J?9??-? +????????4]?-???J??????L??????5??@K??w>c6?u???Y???N???u?K$"?@)?T@?;R)B? ,0???0?8?AR ??-??uD @??J??;????F=;??v%o<?T??t+???s?J???\?T+3x%S??r??????? ?S ?F???L+?Uy??u????,???K?t3?LXI??h3?u???O??????t#??????h8?? ??we?;?B?!?C;?????r??????6 ??n?^?????+9??4?8"?#???? ?ve??s?'? +???nK?`BP_z0?Y??B? /WuUSKH;?h?i???P??pK4!??+7 w????+?(?~g? w?}??}#+?@?k?r????8?.?@??Yh??-%?K4?5??1?????[o?J0+??<+??V?qct?? ?\x?z???? ?wO????*???1???]??6???,0??I??o??u?@?s?? ??!!?cR@[C????;?L??&??q??p?o?0?)?,??q???? r?B???tk???3???u?:?J#v?v??u??O??p?M#??t ?J+?*?@?c??+u??.&????H?u?????^ 8???@?(B?"??x}Y?$?? ?r??@@o??k,?C(Wth*P? F??? 4??L(H8?B???0LX??QV?[???RQKu$'?:?????jw[?P???O? ]??K(WQ?C?C>l?S?u???? ??C?(???s?u?s4%?+?rr?-??WG???WVG0??kt??????f?`????????.2^?Q5Ch????7??,[??(??QH??? Mq0Iy????A;?.s +?N? R ?? ?I???(e?`FZD)s????P#?b?u?3M?????Q/? ?Er?Y????X0#?????4??s4Qm??3N??uQ??h?9`?A?@g???n~^6?8~?5?t???4???1N??#?i&?H 4???-?1,{3e#??;?s&~?z?!???cE!(??_r??,T??vxo?#???t?? ?Q??+?2?o???]y?sY?m,9(+??r????? ?;?v!+???GFMu?J.v????(Ij?V?^??_?e7?[????p0?4GYr:??? r3)X?P ?? #c?????beTSz\Hz?}??N??'?K?V?gm,!1?A??`?D7w??Y y*@t???@?? ?X+?*oBp?X ?w???AZ?_mII=`k?Ta/H???  ??i?  A?i ?"?z?&`995-?BWS 2+r}A?????$GS_k???{w{wsg????[????i?#+3;CSi??ics???{??? )R???%`h?e???? k+ee?X?8P?'l? M%S?? ?blo?ypevX?h??l??v?g?Wo??`f?e?YEbsymbolsW?+8?it&r ???v?????Mw???????@k#3?bB ?JyMd??K6 ? 2` ?d?`4??@d?A?X???S;?Ax8?Q?Aih(Ad??d?H?Tk??U?+d?At4?d?A d$?A??M6dD??\4? ??TS0? ?|?4oGQ1?f? d??i???e??A?R??/3&?,7???h??U?gLZ?7??Z? ?j HUm?<X?3y??{??Dv?6??? 2???nOvFf%Iql ? A?Y,?mL?t?????P0R??%8? _X????cp ??u\?5??S:n33???musa? ???sfr|{i/djt??Y?_fd??l?ag?m f C_?=":?_X????1n|_h?r3!?abm??v?sb??U?? ????s?lf ???.??m?ya?1l6a?X?6?pytB6??=?m4fcQ,??7?ob;???A]3Of??-?lAskfl??m?-?p?m?nM??ao?}??Wj?_v%s?hIc*?$f??y6?b!??? ????/U!8&??@??aS?????DlgI6m @)!? ???@6?0?X?R?M?l???`?"p XY?5?UBn?H???@?ys?c0E)p?a?P??T.?[(OlVW;a??it}?DC?;??? ?S.S1??u0??uv$Bo??m?EL? ?[?6 at J 35S`?/?A??l p -Y,z?;?@??} /{ --- NEW FILE: wininst-7.1.exe --- MZ? $ [??T[??[??T[Rich??T[ ?;??O??? ?E???VhnA?}o???? S}_Jp???A??"4?N*???>;??v? K?? ??????V??.? ?W?N ?????GF>?O?M?????U??D=????c??lt Hn?M?mw??< h??1s?hL*??i???e? ? ???0Q?g?u|? 4??o^????? ?j?????n??9?:d? ???f?????3??s??????h?9_%????+?????l?)?/??Pp Q!2GB??"@KSPG??? ;?)? ?Qw???????aY_??vZ at uL@yy[zHI3~nt [? |ru:@0 F?2 ?a{?FOOj??Q?p????< uO??-?F at Ox?? r?h?6\???XC??5p???arV?? ?????M?j?:?7?K????Z?e{W?V?u??????mY??8L??} ?[?? ??P4M?l????????%$?????Fh???V??l?RZH??? _??U?RG?`?- g?\???l?t ??p??dd?xX9?s2??X?,\#c??;?t??D??<'<?t'????$??.??XGh???????u???wk&?5P?}h??PC?Fp?sH?m??+? V??5????Imt#!?P????Q*????xV?h?,F?9L+??MN@???l?\T x} VSN???"*d?0$@?p9G???x,t?[?80? m??B???9Vo:G2y?C?????P ??HQ?RM?5???0' ?4,?^?|S?L?Sl???V??"?4?U?" '?XT!????]?P!?????BtLW3??? ??|W?????_?L??F?????$H?{???????O*?gn Y???h???Q t?x_??`_L???? ?[?G|??? ???? ?\~H?l????W???g??5?`?U???+?+w????R?+U??R?+???????z?? E?4??????|C??@??f<?Y???? c????uN?k)k(A??lc 9?????n1r???? ?XCA?lv?&?h?xP??l#??S5?S_?Mj??)?@` cGx>cZP?????h`?Hd???r )?uo!f??`5"T?D???0??@ ?-{???;??n??????"Rlj (?H?mo??|???u?we:^????K?,Q"??;??=fG(??h?-???`??\???W`+aM`??]??:????H?? ?????S????E6?V3?/??[?FVu@R???50r???c????|V=???:?S??q??`?`?h?? ?q??I??S?;?^????s??B+;8?)?zg???????F,?h,?J7a!?H?)??a??? ??2 ? >?6,???*????u????l?K'J?+1"hR???d/K??ai??6??q=??:????J? 6????H?3! ???I??????nsz.x?!?R?,??G?@??????G h\?r?? ?LV?????V?8$??*M[ Nc??VS5?F6^$2S???2^HM?@8/<^??0?|?[?[ V?? &?2?' ?T ?Z???N????G??(????{p7N??g?A???hVr?????X??^??Q?D?!-?????8 $??@Q??1??V? ?!?B!?7?? ??I?) Tk$??]??T?*?%g4?S?j?'??7??I??t=??>?B?P? >ayHQ??/D??dG?V??Q`?pj `?h? ?L???h?x????&!??+?1?w(%Y?a3?>??5s???b7F,5??g? ???~??, ?D?,????6uI?% ?o?l?Z? ?h0F??4????M!^????[?D?0 ?t???'s`9G?IR?????K?N??????D?t^?C??o|S??W???DP?)????]???$A?z@?L2?s?,??A??[????]????????? Hj&?8?)R?!?h?\WQ??=?wu>."????? F?i'}{j%3??5(??E6???*????W??q?s ?"Mr`7??F?e)?9?? ??B!p ?)!?? m\?G;r?Yi;?C???????~??w??)?YH]????C???p?%????? ?N[?????E?J?U?K??xQ?]P??K} n?W?t3????]?A ?=????8B ?V???S?Z:?x????E?\?UA?x?.??m? *?5a?4h?,,??X`j=b??zH ??I3??Z?P?a?hJ;????i?>94/h??g+e???'+??????2??(?31,N??-9??#???? ?? ?@&??88')??? ?????? 6?C???O1?=?B?? ?~l|C???D???S N?<0\???? 2W?d?nW?E?X???3U???2??L?,???-?"?'?;???????3,? Y?=?1?@??!???hAZ ?W???K 1? .?,?B???=t4????6??lQ?? hPE?[??t???h??C?`y2?O??Nh??P?@5,??R3JO?J??;??XH tg8?X??L% ???C V"A???\?(?V$ d???? ??;?Z??-?_Bb ?~8??5? ?WB~(9~$k??[$ ??> c?5??{??J???\?dk? ?I4 ?k7D;?HB?:???P??H7???H9?% ??2$ te57?b2;5H06C?e2???D??`???&?@?d???sm????eph?,??]?PU^??l?7HG????5? P??r%G?? ??t?x|??????Z???n?$? ?? ;?sC??? ??"w???>r?!?|]? ????W?#??jBZ??????JO? 8?-? +|????????4w?????J?? ?n?L?????[???@K??w>u??? ??Y??&: ??u?K$"w`??T@?; J??,0??F???8?AR ??g??uD @?w??U?$m????????V??S?T??P?Ku?e?@$?? P+;:(?7??R?LN>?AX????????H??Ll??BV`S???Z?KVB????TBz?P??PHVg?m?+???gke?? ?'?X?|?!S??rB?KS?t74?;?d??f.C??^?f>+??nCn?Rre??f?##??7C.??Rso5?v?V?W???R?K;?TH????n.??????XZ? ????HC?I x/?l ???T?r[?&?Z?P???^??~?~?zYjhw?2??P?"????6=?E?P ???S?N$(?F^??^???O???/?K?m? ?h?yPfh?@?R{??w????uX????0'??@?9]?u]3?c???G???t??W????I???"V?#@u:{??? PHhK??h%??]ydn??????*???C???t!/??s?+??Ypk?? 03t???J?:Zm??;?=;??v?c??%T??t+???????s?\?T+3x%S??r?K???? ?S ??m?L+?Uy_w?a?????,n???t3?LXI???6??u???O?n;???t#????F?8?? ??W????B?!???~C;?r??????6 ?????????+??LC?8"?#???? (?o?m?h?[s??0b?C??Uxo?g?????????D????yt>.?@?????-%?D[C??1???????J0+??<+??a7Vt?? ?\??9?z????p{??????*???1??Z??6???,0?z???I?u?@?s?? &??q?????0?)?,??qAx? ? r?B??n???t3???u?:?JbGh???u?????OM#??t ?J+?*D8?=??+u??bB???H?gj???^ s<]@?(B?"p???}Y?$? `c+??x?o?l%W?? ?r ??oa??6?,?C(Wth*???P???St]?g??u >v4????tW4R??g?PQh|?_7j ??UR???V?? ??C]????(?u?s4%?+?+l????W??@?GWVG0?X?{??????+{????????v?02^?Q5C4,h?Q?8}?,[??(.???Q Mq0Iy??G?A;?.s +?N?Z?]?? ?I???3j(ZD?K,-??P#?[?N3M??????/? ?E???r?Y?X0#?????????4?m??3N???????h?[ ??9@g?v? ???+?2??ol?]y?sY?m,9(+?????{r?? ?;?v!+???GFMu?J????.v(Ij?V????^?e7??]$????GYrm???:? r3hX??A??rD)(?????P?d?.kM ? ??= ?V?e(?b0???0mCoI???n)Ns 'r?F;??s Mxim?l??Y?>Sys??v/D??!? P?t???[??<ogramNul?_3Ou?f m}!B?X??b?e???`?-iS??{[h? ???'loa?`??Zb4xL9m?l4+a'J[?&lq ??v?w ?cS,ex[z????s? ?? YkQ{??ALWAY o., p- k?NO,NEV#+E?,Vwo!?????100 M??:???.py r6???]cY/%m/lH:%M '??R????qY +????? [ha f?D+Q??&?cc????Jbght?? ???mne0J??`?s?o?Ha.?f? ???e? 5??t. ?OF b?)?-?t??w?????? ??rsp?rgr:?~????X?f?y*@@B?,????p??*oBp?e1???w????_mI????Ta/ ??by??u????'?v?k?????U4M?t  ?4M?  M?4M  ? ? ?&??)`995- 2L??+r}A?$?{??GS_kw|???{wsg[??4M??#+M?4M3;CScs;M?4????? ?? )R?h?,?e? p??kee??Z??8?'e?L at 5%S[vW?blo?ype???JD?l?g??C???o?b3??/??*JsymbolsWit?N?a&r??????????????N?t????Z??bB?H?VaMd??^??? `,`?A ? ? ??@? 6??X?4? ?S;xM3? 8?Q 2? h(?2? ??H? ? ?T?`M3U?+ ? 2t4?? 2? d$? 2? ?D??&???\??d?TSd|K??t????C ,S?B?F?s- 5 VX K???i? <?????3y??{D D! ?1?nM???????vDf#Io?X?? PgS?up)fo????A?L?tQf ??0 ?g4?Bkz?$????c ?,?oV S_Xcp?K?'?6G???c?8???__ ? g?F f?{V0qZc??s?c)??V6?mey??`?7a ??6"?py?lWu???9mUfcKp!??vtf?ob?????|3?f?a?Mh5??ifl????0t?????"nP????{??_v%sT???tI?v??$m?l? ?0?ls3r p6 ?e?Hr # ???T??l?yJ?2?,EP???'???ysk?+?k|c~B?n??0M???pdP k?a  c?&+ ZwZ` ,??l,?u?*?t?mY?%???9?K?T??XHw??O?v?W.t`??K?p? `.r;??!?0?^s?@.&<-?){??'?Osl???l _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:03 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:03 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Demo/imputil knee.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Demo/imputil In directory centera.de:/home/tismer/slpdev/src/2.2/src/Demo/imputil Added Files: knee.py Log Message: added files --- NEW FILE: knee.py --- """An Python re-implementation of hierarchical module import. This code is intended to be read, not executed. However, it does work -- all you need to do to enable it is "import knee". (The name is a pun on the klunkier predecessor of this module, "ni".) """ import sys, imp, __builtin__ # Replacement for __import__() def import_hook(name, globals=None, locals=None, fromlist=None): parent = determine_parent(globals) q, tail = find_head_package(parent, name) m = load_tail(q, tail) if not fromlist: return q if hasattr(m, "__path__"): ensure_fromlist(m, fromlist) return m def determine_parent(globals): if not globals or not globals.has_key("__name__"): return None pname = globals['__name__'] if globals.has_key("__path__"): parent = sys.modules[pname] assert globals is parent.__dict__ return parent if '.' in pname: i = pname.rfind('.') pname = pname[:i] parent = sys.modules[pname] assert parent.__name__ == pname return parent return None def find_head_package(parent, name): if '.' in name: i = name.find('.') head = name[:i] tail = name[i+1:] else: head = name tail = "" if parent: qname = "%s.%s" % (parent.__name__, head) else: qname = head q = import_module(head, qname, parent) if q: return q, tail if parent: qname = head parent = None q = import_module(head, qname, parent) if q: return q, tail raise ImportError, "No module named " + qname def load_tail(q, tail): m = q while tail: i = tail.find('.') if i < 0: i = len(tail) head, tail = tail[:i], tail[i+1:] mname = "%s.%s" % (m.__name__, head) m = import_module(head, mname, m) if not m: raise ImportError, "No module named " + mname return m def ensure_fromlist(m, fromlist, recursive=0): for sub in fromlist: if sub == "*": if not recursive: try: all = m.__all__ except AttributeError: pass else: ensure_fromlist(m, all, 1) continue if sub != "*" and not hasattr(m, sub): subname = "%s.%s" % (m.__name__, sub) submod = import_module(sub, subname, m) if not submod: raise ImportError, "No module named " + subname def import_module(partname, fqname, parent): try: return sys.modules[fqname] except KeyError: pass try: fp, pathname, stuff = imp.find_module(partname, parent and parent.__path__) except ImportError: return None try: m = imp.load_module(fqname, fp, pathname, stuff) finally: if fp: fp.close() if parent: setattr(parent, partname, m) return m # Replacement for reload() def reload_hook(module): name = module.__name__ if '.' not in name: return import_module(name, name, None) i = name.rfind('.') pname = name[:i] parent = sys.modules[pname] return import_module(name[i+1:], name, parent) # Save the original hooks original_import = __builtin__.__import__ original_reload = __builtin__.reload # Now install our hooks __builtin__.__import__ = import_hook __builtin__.reload = reload_hook _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 18:37:33 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 18:37:33 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src Makefile.pre.in, 1.22, 1.23 Message-ID: Update of /home/cvs/slpdev/src/2.2/src In directory centera.de:/tmp/cvs-serv5249/src/2.2/src Modified Files: Makefile.pre.in Log Message: unifying makefiles and setup.py Index: Makefile.pre.in =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Makefile.pre.in,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Makefile.pre.in 4 May 2004 16:33:58 -0000 1.22 --- Makefile.pre.in 4 May 2004 16:37:31 -0000 1.23 *************** *** 282,286 **** Objects/moduleobject.o \ Objects/object.o \ - Objects/obmalloc.o \ Objects/rangeobject.o \ Objects/sliceobject.o \ --- 282,285 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:08 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:08 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/Finder Containers_and_folders.py, 1.1, NONE Enumerations.py, 1.1, NONE Files.py, 1.1, NONE Finder_Basics.py, 1.1, NONE Finder_items.py, 1.1, NONE Legacy_suite.py, 1.1, NONE Standard_Suite.py, 1.1, NONE Type_Definitions.py, 1.1, NONE Window_classes.py, 1.1, NONE __init__.py, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/Finder In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/Finder Removed Files: Containers_and_folders.py Enumerations.py Files.py Finder_Basics.py Finder_items.py Legacy_suite.py Standard_Suite.py Type_Definitions.py Window_classes.py __init__.py Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- Containers_and_folders.py DELETED --- --- Enumerations.py DELETED --- --- Files.py DELETED --- --- Finder_Basics.py DELETED --- --- Finder_items.py DELETED --- --- Legacy_suite.py DELETED --- --- Standard_Suite.py DELETED --- --- Type_Definitions.py DELETED --- --- Window_classes.py DELETED --- --- __init__.py DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:31 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:31 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib classes.nib, NONE, 1.1 info.nib, NONE, 1.1 objects.nib, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib Added Files: classes.nib info.nib objects.nib Log Message: added files --- NEW FILE: classes.nib --- { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, { ACTIONS = {"do_apply" = id; "do_filetype" = id; "do_reset" = id; }; CLASS = PreferencesWindowController; LANGUAGE = ObjC; OUTLETS = { commandline = NSTextField; debug = NSButton; filetype = NSPopUpButton; honourhashbang = NSButton; inspect = NSButton; interpreter = NSTextField; nosite = NSButton; optimize = NSButton; others = NSTextField; tabs = NSButton; verbose = NSButton; "with_terminal" = NSButton; }; SUPERCLASS = NSWindowController; } ); IBVersion = 1; } --- NEW FILE: info.nib --- IBDocumentLocation 660 84 519 534 0 0 1280 1002 IBFramework Version 291.0 IBSystem Version 6L60 --- NEW FILE: objects.nib ---  typedstream???@???NSIBObjectData? NSMenuItem???????NSMenu? OtherViews????NSMutableArray NSComboBox???? NSImageRep?????[1942c]MM ?? ?? ?????NSTableHeaderCell????? NSButton44????? NSButton43?? ???NSBox????? NSButton42?????? NSTextField2??!??? NSTextField11?????? NSComboBox??+??? NSMenuItem2?????? PopUpList?????? NSTextField1??????NSView1????? NSTextField3????? NSButton41????? NSButton2?????? NSTextField21?? NSButton45?????? NSMenuItem?????? NSPopUpButton??????NSBox111?????? NSButton4??#??? NSTextField1??.??? Preferences????? NSMutableSet dataSource????W?????NSToolTipHelpKey????8Select a file type for which you want to see preferences????W??? _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:37 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:37 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Contrib/osam OSAm.prj, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Contrib/osam In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Contrib/osam Modified Files: OSAm.prj Log Message: hopefully this is now a base version Index: OSAm.prj =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/Contrib/osam/OSAm.prj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvspZqXn3 and /tmp/cvsIiCQRW differ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 21:01:51 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 21:01:51 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Stackless stackless.h, 1.38, 1.39 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Stackless In directory centera.de:/tmp/cvs-serv25204 Modified Files: stackless.h Log Message: made generator patch smaller, for easier re-use in the older version. Index: stackless.h =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Stackless/stackless.h,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** stackless.h 29 Apr 2004 02:18:40 -0000 1.38 --- stackless.h 1 May 2004 19:01:49 -0000 1.39 *************** *** 59,62 **** --- 59,67 ---- #endif + #ifdef STACKLESS + /* get some definitions for backward compatibility */ + #include "core/backwardcompat.h" + #endif + #ifdef __cplusplus } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:06 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:06 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/email/test/data audiotest.au, NONE, 1.1 msg_34.txt, NONE, 1.1 msg_35.txt, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/email/test/data In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/email/test/data Added Files: audiotest.au msg_34.txt msg_35.txt Log Message: added files --- NEW FILE: audiotest.au --- .snd ?)8?)??,?g?2 ???S 2+>???>*??? 0&??? [????E?$??4?E<?????64??8?8$4?4??M????"?????!<???? /????.)&??? )?8????%?E:?8:???4 ??.#???<:??[ ???? ??*???28+???& ???????$???.0?.???????'?$???I????? !????&???-??/???%I?*?'82-?? ??????>?(???(?????M?4 ?<>???[???-??+ ?#???+????-? ?,/ ??????!???-?>???? ???*g?6?? ??? ??*2????? ???,!??#????S??????>???#A?6 ??????$I?2??:????????E&?? 'E???$:??E?(?'?(??????(&??"(&:)S???+???6(?*?-!??????8?>?,+)I??? , ???&??? +8>+*??????A???8/+ ????????[?&?*$/???6 ???'2???%?+??? ???-?????!'???: ???$?????/>???ES????S?+?#,)??? ???+?%??S?.#???I???(.?8M<+&>????????[??-.E<#*???????[?$?8??? ????[??:??????.-????"?"'-(???I ????? ?E E$* ,?&? ??I?>?#6)>[/?????& ????%????E? ?? ???? ?%))[???????????$6. ???!?&'>A:"%E??A????'S????*??-(S8S?!(???%)[???>?' ??? :????6'?8??:??M? /????.?2!?4'8???? 4??????))I??(%???/?(? ????[:?????-???? ?A?S2# 0???24???$?"-",g??????????????M?.?g8????/??<#-?[?2 ???????? (!$???>) ,????g????IM? ????8+ %? g?>%S???/???2S???.2)????< ?S?0(/2?I%:???%????-????0"????- g?????)?????8????I????)????& &????>????-"4????" >????E???%????AM???4????????*E??g4???4#$????A EI8?2?????A' 0???[ 4A?>?S??> #-????E?/?A:????$0????E?????????&A??????6?6??"&???? < ?<?I??S???!/?????"?%???????!*!?????.S????????*$2?????/6 ????M??E.%0?????.????4%?[??4?A>!!#A????$$???????,(%0?????'.)???????:,$!-(E?????+26???????0.$%8?????+-/???????,*$$ 6?????20/?????g?00&+?????0 (%????I>I/,#?????A %"????AE8?. I????E ????.E+?'#:????I????6S*?(+0?????)????[?-?6A'-?????) *[????82E?80"g????g(????*M'?>?%6????? -g???A.,*4A?>?A????g*????":2??A($?????" -,???E)8A?0E:?????$????$M-??I*'?????  24???>60??6(![????6 &"????:[M?g*M????S #????>EM?>*M????[ !?????M[?0+#?????S "???????E($#?????6 +?????0?, (?????* 0?????+?0-?????'A?????,?+6?????"S?????-?+2???????????%?!.?????>???[?&?$",?????* &?????'MS*))A????I ????M?$?:-?????) -)?????'??,:!>?????!????I?#?[?+!'g????? ,????A[+?>?+?????I 6????>A????? ..Ig??I:':?[[, /????g./*I???/&$6?????)2?????+-E8????8E%0(????(?/???> $/?????S''????(?.???[&/??????%*????'I%???M)M????A-A????>g2???I(E????<0S????g??????&/????<".+????8??????&&$.M????8 $????,???????/(S????-S,??6(#8????gg????????????+ 0??:?(&:,????A??????'$&8??????>%-??E:"E4??[6(:???????%I????????[?S?????[SE2?0"!0+??.8,-???????????,,8Ig8>?(S "*(8?SSM??????/>?????????g *?4EE',4.?80'!/E????????:0?????????????'#*)4EI?8??.?$??????[????[:#&.M????E.8EI??<(!+4Ig??????A6AA????ASgS?M/&'/E???????M:IE????I?????8,/06SS??/!->E<:????)g(I??gI?????)$&6Ig?E?g??A?-(6IEE2g????*+%8???g?????/'!.,846M????").>:M??????8?M????-"6????????/%"+I???????>,"E/????????M((!/(:EE????<,'<&gM:?g????62!,4*6-,>g??:,*/>?M?8S????M2,42<:/,/:ES:.(%M0?S/M?A8MggE:..2.:E??gS[???E8//?I????????I,/(6?S??[??SE6)+4??????????<)*26?????&% EM?S8?????,I-4???:E>????[2:AA[SA:8????S?,0A?g:g6?????+-,0S?ME4M????':"(???>>4????0(,28[S<4)?g??M2*%-ggES0>????+,..[[MI.,????&>!*A+:????$:0???ES4????86:2EAEA82????S(8 2???g/6????<08&:A/??M?????/(??????M*-,++>??>'????( 26???S???E(>ASASA0//I?[:MS??:8II??II???A-EMSE<<6-00??68[>??4g?M?M-??A?:-?2486,+'*,??+g???%?6>?!????2/M,8(>("*??A+?????':?(??%0/6-?)4-)6????+?"??????S,?:/*?.,2M'8??*??A??'.????I??+(.?"?2?#6?&???g?:M>????2?S"(MM$?6???????*?*????gS?+2?./?>/?? ???I?(????g??)0M/M?.&?? ??I0???????A0&ES??-*????/2)? ?????[60)%????.2:? ??M+??0?????4%<??[?6%? ???,E?????&S'/.??g?:#.????<4'),2?????'"%#"A??6?."?%???-<)??2??0008??:??""I? ??*?)+4?????&E$S?+??:$/(? ??&?0????A?8'2&?? ????M?2????*?$#:M/E??.?2'&?[?8?0??)????-?)?-?0S?%A,,?? ?? ?? [?%M???/?$#?/2?6?>, ?#?,?2??S???4?++?+/?.?A4<(&?? ?? ?? g?$&???[?*?&g<-?:M88$? ?? ??%????.???4?"g?&?8*A&? ?? ???<???&/#?? ???? I??:+??#2?6+?$[?:04?'?(?S????)??>2-g4>g,?.+(?6?A?? ??:?'g??4EM/4E,?>/A?? ??-)?!?('????4I'M!8I<:?26????>?M?*#??6??8I6>(+6I,?>A6????[??MI26,.?E:?ES2?:/??MS?8EgI8??:???8E8:2IgAE<:AII.M??E??A>?>>MMIMA8EAM?>08?:.448?2A??E??MMAEM?A>MSI<4:<:,4E?4[??I??gMS>EM>:??????MSMgMSE??ESgMMA?[:S?>Sg[S????????S[>E>:2<>8??[E[g[g[[[MMg[SMgg[[ggM[S>EMEE<[MgS><>>[gE:I[AEI8::EEAEI[AA?:6>SM6ESgg:?gES[?S/M?IE??::EgE48SgE>S????[??[MII>8S?E>SS::A4,I[42g?M?I?gA8>MS2>?AIIIE:46EM2MS[AM?M[,46:6--6gA?IM??M??????[g?I?SM?28???M???M>gS:[I8S?MM4:S??????????EE[0,:,2?E:II4?M?g?S??IgM???2?????[??.??:,S$(,6[IIAS/AA:[g<8?Sg?S>???g?E???>IM?>8/AM-??EMAE?AI????[>?A?AE:*M8IE[?[MIMSIgSM[???[???????SS?S????SM?g????????????MEA>>6A?S[?MMgIS>4?8,E.(.%(.'64*00.E/<824<40.+--.00,8-*:,68(,-&&+(+--2..62/2/468EA><:666.:646S8SSSgMEMMI?g??g???????????????????????????????????????????????????????????????????g??[gEA:8:820><:A8:2./.*+*&)&%(%#%##$$!%!#%#%%'%)'(($%#%&,/.0+..--.,+/.420420666864:<A><<88446686464664//-./-.---/-//-.....----.--......///002244688:86:<AAAIIIIMM[[Sg[ggg????????????????????????????ggg[g[[[g[ggg?ggggg[[[g[gggggg??????????????????????????????????????????????????????????????gg[[[[[[SSSSSSSMMMMIIEEAA>A>>><<<<<<::::::::::::888:888888888::::::::::888888888::888:::::<:<:::<<:<<:<<<<<<>>>>>AAAAEEEIMMMSS[[[ggg????????????????????????????????????????????????g??????????[??????[:.,/M???????/*IE???E**?????A#'[????**???[%-???S8"&,,E???,>,*.???-86!'I?6'2[?? ,???)':??M???:$[?<:M????0???g:A????????[??????????????::????????[??????g????????2/???????66[Mg?[A*>??86?8&??E/g>$<,-<:/%.?M&8+,??0M.2-)+/.6?:6*A?>.<+!?8,>88 )g??#6)A0,S??<..?>g???[I??????>?????M???8????4????????S??AI???AEI???*M??+2???M>??/2?S*??S-*%6E??,.?8.E?A./?42?,#S8- )%>g?%/)I,:>?+42?$&:["(S2.$) 6?&'AS'8?A>'* 2??+?????6???&,?M??M???????AI?A>?????00???0??I???S????E>E.8?????2-??4/??+ ?M[E0'8??'g?:&%I/)?S>>>>:>>>>>A>A>EEIAIAEAIM[SSMIMgSM[??g?[SSMSMSSSSg[g?????????????????????????????????????????????g?????g[[S[[[[[[ggS[MMMSSMSIIIIIIIMEEAEEEIEEMEEEEMAEIAE>>EAA>AE>>A>>>>A>A>EEIMIMA>>EIIMSMMMIMIMMIMMMMSMIIEEAAEEM[g??SIEEIMSSMMIMSSSMMMIIMIIIMSMIIEEIMS[g[MMMSSSSSMSSSg????????gg?gg???gg[gS[gS[g[gg[[g[g[S[[S[[SSSMSSS[S[[[?gg?g?ggggggg?g[SAA>>AAAEIM[gggg[[[SS[[[SS[S[MSSMMIIIEIIMIIIEEIAEE>AA>><<::::88642688:026>:>8266:8:E><>AIA:AS[IAISgSMMS[[SMSIMMMSgg[MM?gSS[[??gM[g??[M[?????????????g[????[M[???gggM[??MEI[??[g???M???gMg??[[[?M?[[?S[[I[I?MAMMAgIMAESE::><4<6I<>>>:S<[>M[MgAMEA[MEIAEI<>I[MEMASEIMIgIIEMSSSAM?A?SSM[SM?g?[I?SS[g?g?SI[g[gS[SgMMSEEEg[MMMIgSIMSI?[>SgMSMM[MSEMAgI?IMgggMSI?ES[AMMMAAEII[EAIAESEES>AgMMMSESM>MMI[AAME[IESIIMASMg[ESMSSIIEgMgSE[SgI[MgSgMI?ISSM>E[AEEE[>SSEMMSMEIMIMEgE[MSSS[[g?[EAIIEIEMAEEIEMSMM[MMSSSIM[E[>ESEMSMg[gM[g[[[SgSMSIMIIEIMIEAIS[M[SMSIgSM[M[[M[I[[M[MgSS[MI[IMMMSMMIMMISIM[EIEEMSSI[SMS[SgSSMMSIIAAIAEEEIIAEEAEIEAAAE>EMIIMM[MISMIMMIIEEAAAAEAAIEAIA>>A[S?g??M?[M[[S[gMII<?[?S?MI?IgA>M????[MSIIMEE>>S???gMgE?>:44I????IE>E>IAAE>g???>g6>?48-+<[???g6668><<::>IIIEA<82E??g?,<4-4-[?????I-04IMS???SAAS????,82/4,E?????>-26>AM[MIA<>M????0?6M6*AE????/++.8:MMIME>2,????E?-?.2AI????8,),/,6<>AEE6++????(?):<,>A????A400IA????[E8+%S????20?0g4IEM[??M>E>E????M[IIMIg[SI>:AEIS????[[SSES[[[IMIE>88:<AAEEMMgIMSIIEEEEIA<::88:8<6EEEMASIM?S[MgI[g?g[?[?SSE[[ISgS?[?[?[[[?MMSI[IEME[IS?E?ISM?I??[S[AAMI[[IMMIIA>ES:<:><[EIIEA[EIIAE[M[g???gMIgEASA[M>8AIE>IAAM????gMg[I[>AEAI?SA>?MAEAE4E>IEMEMSSMgMgSS[SgS>II?[gMIA>S>AEgSE?[IE[E>E>A:AISM?ASggS[I??MMM??gE??[[MM[MggS?I[SSgM[[>>ASA?SIMSSSMMMMAEAI?IS[[SIg[AEMIEMSMI:?gIEM[?gSESIIM8I>I>AEEAIM>>A>S<>SS[gS??????gSMSESI>E<:EAI>SS[SS[?S?[gS?[I[?[MS8gM[????M??M[gIggEAIIMIMSSE:IS[SI[?g?[[M[[SMAIIgM>?II[SgM[?[IAIEMIMEE[S>>S><8>>EMIEII[ISSMIAg?[M[SgMAIII[EM[[MAIII>:><IEEAgMS[gg[Sg??[EM>>>>AAISEIMSMMM[M??????[SSE<>EAE>IIES[?g[gSgSMMIAE>A>>I?SSMM[[MIIISg[[[MMSMIAEEEISMMSg??g?[gggSMIIIMIEEMMMSMMEA[?MISMIMg[EIMIISSII[gSSgSMg?SSMA>662,2:S?gSE???M+$)[????<:042>II?>E<>???:*&2???[<8:[???.%$4???g[AAMI?E,).8M?????&$%)(8M?[??gS???M/$+????EgA?g?0#+0?[g???6'$E????IgS???8'',??????:& S??M?I[?S??8#!*S?????2"g??ME6AME??6 *S????[*+???MA:ESM??6/?????>$2???I>6A>[??+/g????68???:[E??A[??8*+S??I???80)/4ES????>#-0??MAM??S??[:6/<:>II6???.%#g?E,4???I8??//0[M>>8*&#/???&68??.???04???08g>/*IM-.g??00-??(#>??gI??[/,2g:>S?8#*???4IM[<6,-[??[E??[2%:????g.*AIEgg????MES>4<8<:6Ig??A[???2+ESAgI??gMSEgM4A>>86ES??E?6EAg??Sg?M<:>SE466<>?[Mg?[g:4?gI?S[?S??ggI8E><66:6[?ME?[?S/:gE[[???>M[SM>.>?>E>S<42422??S??<<><-.M??S>?M6/:??-???<2??:.g?[2ES2&+S??<>?<,0E?M(???.:?[2,??E.gg/"-M??2I?2//S[A2???*??A/4??<8?[-#4[??4[[?04??IES?4'/.E??Eg?0:A8g>E???ES?64A?[EM[<,+,2??M?M,0??AM[S/*..A??I??:4M/>8>446I??S???*4M<<[IE60/4:??I??>SI6/84??????86M>8gIEA:8:6??6IAA<8:84E?IS??8?[A266?g[???A?I<4E646846:g?/???M??<:.MI[M???>?[2:<066022I?S2??4???.4/?4/[?[ES?A0A:00<246[?6???8??M84A?0:?g>AgE44E606:42[?/???S???A:[g68?MA<8:A82?[4??S????4I?:0EE:8A><A>EE>EIIIM[S[?????????[ESMAE[>E:M>:IMEEMMSE[ggg??g[g[MSMSAIIESMI>EEIE>>>AIASMS[S?MgSSS[MgMESI>E>I>EEES>MMEMMI>[S[[M?[MMg>SMIgISMIEM[E[SISSS[?M?<>[MMM[IM:g2S[SEEA<0?:?ISgg:MES?SIM:M[AIM?M?E<6>2?A[?Mgg2??E?A[EAIME:SA[E??IMI[E8g8?:gAgME[EMMMIISMIgEM[SgEMSESESE?EI?AMMM?A[[>?MMgSM??gM?MII>>EA>E8>A6SM:>E:4::<06MM:088/.8g?0???S??I08[[<>????/$4?[/???-??(*IM*+??2&4I82g??S??A+Ag-,A<6??.???:??4(:A62g?????A2EE/,:88g?E???8g?<)6>>:??????[E:M6.<:0E??4??:E?M)2AE4[??[?????Eg??6S?A8[?SA??M:MM2062-,2IE8??????S??S<[SMIMgSAMM<4:6/06SgAE[MAAE>:>IgS???????gg[MAAMSMggSSIA>>>>EESg??????g?gS[SMSSS[SSSMA>><88>>AIMMggg?????gg[SSIEMAAAIA>EIA>A>AAAEEIMSM[gSSg[SSSMIMIIIMMISSSSMIEEEEEEEIMSSSSggg[g?[S[SMMMMEIMMIEEE>AEEIIMSSgg???????gg[[SMSMMMMMMMMIIIIIEIEIMMMMMMSS[[S[S[[SSSSSMSSMMS[SMSMMIIIEEEIIMSSS[g[[gS[[MMMMIIIEEIMMSIMSSMMSMMSSMSMSSSSMMSMSMSSSSSSSSSSMMMMMMIIIIIIIIEEIEEEIEAEMMM[[ggg[[SSSSSSSMMMIIIIEEIEIEIIMMIMMIMMMMMSSSMMSMMSMMIIMMMSMMSSMSSSSS[MMMMSMMSSSSMI?SgMIMS[MIEE[gSEAIIIIIIEIIEEEMS[g???????ggg[[g[MMMMMIEEEISSSIAAEMSSMIS[ggSIEMM[[MMSMSSMIEIMSS[[[MIMMIS[[g?g?g[MMMSMSSSMMIIIAAAAAAAA>>><M[g[[[[g[[Sg????S[[MSIIIEEA>:::>>g??gSEMMMIEA[[?SEEAAIEEIEAA<::SM????[[g[[EEg???M>A>AAMMMM[MI:6?????MESSI>8>S????M8SMME>:AA:/2????[6>????gE???A:4[???S4/442><8.A????<:S[M040????g20Eg>:<:MME6?????>AgS<,//????I--4:2A???<>0[I4&*4?????A/8.0,::I<<:???E?M??I.&E??????>8.,(4A8<28S??g/MA?M(#-???????86),2SA>>A????0?[??(!*???????<*$(+>>26:I??I8[??g.+????????-,./EM8???E6?MM/#>??????S,(*,4:8:IAg???,?S?8"$A???????2*+.,:46>>:??E)?E?2!4???????.,-,-:6ASSS??S2???4 $:?g?????.,)(*428AAA??>+???0&A??????[44.)2AA>S????[68*&-40688>??S8?g?M"'8>E???SA???4!4>>E8[[g>824S:M:S8?gEAA:>><<600:g>IA????Ig????g??ES[IISMM48M<:<>E??M?[???[?g??g?[EASEM>>E<<8<:AA>[M?I?S??EMgSg[I?MSSEIAEEE<EA?AISM??M[[[M[[M?II?I[MIAM8III6EES8<>M[?AgS??MIgS?g[?gSI?ISMAAE8>A>:>AIA4:?<6?8>8640+$-I?????I.g, S????E:<:2-"#:????S?%?I4,?????[8?>*."'I?????/!4)<<-?????g>?>---+g?????M?#[++2??M?A02+&()&>?????:(?4?8>?????>2<,-,(+?>>2?0(!?/28(??????EEA8E-6g?SS??4[&:!%'??[???2/A6E/.??????<?[[+-???6??M+)/+#%)E/A0)-6:*8??'<[:'(?,>???.?[860I[2/???2.?[<2.<%A??8*g0%%-4//E???M????8??S:???:8>'#$'# 4M??+>??AE???????A??<6/660.<20A>M?S????????I[S??[S[S4IE6EA>A8/42><<>AIM?[????????IMgS::6EI/88:<88>SM2??S[????????gS?IAg[8?<>2I26/40A6I:I>gAIEg?g???A?M?[?6?AM>?<<66A8680AAA>S>SI[???[????M?>???[S:g[IESI[[M?A?g???g??[?EI?S>?,g6MEMAg>?:??A?g?:?gMIgMMS:II:A4EIEgAE[MSEAIA[ES4?ES8?E?A?[I[8ME2SA:SAM:gIgAg?gA?0?8?2SMS[I[IgSE?>MI?E[I0?I[0?/gS8??[2?MI>?8S>S?AMA?II?IMMMI?:?SSS?IMEgEA?6?M[[S[A>?EE?:M?AA?IE[?[>S?SMS<[?AMgMSSM[IMMgMSM[[?[[[S[MSIIAEEEE:AMEEESMIEIAE:<466>S?????g?EIAI>SS[IS[M>642:?IE6:A???6/08EIIE>>00I??<./???2"0??g>8M????E8'*4AIME???),??SA0???6AM[4(+8I??S(E??/ #I???&8??[E')6???A*>??<.:???>4A???8(*I??I#)????>0'8>Ig[???g>>Ig??[-):???/!&2?????[6E4E???MEMM[E>AIgMA>8S?g6*,A<:S?M4208?????M:E/EgS6400A???>:???S0.???[g8I???[86:S??I628204AgEI<4M????>gg????gM??MA648<<<22.:A:EAMS[????????S?????EEMS[A2''/:>A>6>????A6A>MM?????????????>>Mg?????[?????AA[??g>426<60,'08EME::>Ag????[[??????g4M???g:4E:>0)&(-8:>2:E[SSS?????????[M-???S4/4AA?S6<<<:8????A4g??S0*8EEMIAISIE>AS???????I.*[[M???gI660E[??????g2!:???><>??I6.0g?MIM[?SE6/+2Ig?g??gg4"0,,4EEE??Ag-#.4A6ME???IA24?AS[???gS[:2/8:S????I66&>4/04-.0>[?S6468I.).:???????[SIES??????[SEA4:8:ME8:>:EI888E?????????????gSMAA822//244:>EIMg[?????????g[[SSS[[???ggSIA>:88626>Mg????????gggS[SIIMEEAE:8:8>>IISgg?[[[MMIIAE>>:>EMM[?????????SgM[SSSMIIAI>AAAAAAA><>:AEgS?????????[ME>A:<>>EAAIEAE>IISg[g?????SSMMAEAII[MSISS[Sg[?SSS[MIIA>AESEI[g??gS[S?[SSgS?[gI[SgS[M[M[M[MMIMEMIgM[M?M?[MEIEI>E>E>MIMEMM[IgMSIIEEE<:<:<:EAMI?[?gggg[?[MSS?[[SgSMSISEEEAAE>>>A>>>AMMSS?????S[[[IIEMMSMMSS[SSSSSMSSSIIIEEEEMSISS?[?[SMSMMIIEMMMMIMMMIMSMMIIMMMIIIEEEMSISMg[[[IIMMEIEEESIMEIMIIMIMIIIIIMIIIMIIMg[gg????g?g[[SSMMSSSMMSSSMSSSMMMSMEIIEAAEIIIIgIgMIEEEE>E>AEIIEMIMMS[[[[[g[SMMIEAAAAIIM[S?ggM[S[SMI[M[SSSSS[[S[SSMSMSIMIIEEIISSg[?g???[?ggISMSMSSSMISSMSSSMMMMEEAA>><<>EAMMgSggSSSM[MMMSS[SMSSS[MSSSEIIIEA>EA>>AESES[????[?g[[IMIIMIIIEMMSISM[MSMSIIAEEE>AESI[S?g??g[[[[ISIIIIMEEIIMISISIMIIEIAA>A>>>IMSM?[???[[SSIMIMISMSMIS[[SSSSMMIMIEAAAA>AASISS????[gSS[IMIIMMIIIMMSM[SSISMMEIEIAAAAAIMSS?g???[[SSSSEMI[SSMM[[[[[[SMMIMEIAEAA>AASIgS?g??ggg[gMgIMM[SSMMSgS[SSMMMIIEAAAAA>>AMISM?g??[[[S[I[EMISSSISS[SSSSSMMIIEEAA>A<>>MI[M?[??g[[[gI[IIISSMIIMSMMMIMIIEEAA>>>><>>II[S?g???[gSSM[EMESMIIIIMSMIMMIMEIEE>A>><>>ESMS?????g?[[[IMIIMMMMIMSSSMMSMMIIIEAEAAA>>AI[[[?????g[[SSSEMISSSMMMS[SSSSSMIIEIEEAEAAAASggg?????gg[SS[IMI[SSMIMM[[MSSSMMIEEEEAEE>>AMggg?????[[SSMMEMISMMMIMS[SSMSMMIIEEAA>A<<A>>>ES[gg?????[SMMESEIEMMMEIIISSMMMMMIIEEEEAA>A>AEgS?[????g[[S[MSIIIMMIEEEMSSIIMMMIMEEEEEEAEAEI?[??????[SSMSIMEEIMMIEEIMSSSSSS[MSIIEEEEAEAEIg[?g????g[[S[ISIMISMMIIMM[[SS[SSSSIIIIEIEEAEI[ggg?????[[SSMSEEAIIMEIEISSSSMSMMMIEEEEEAAAAEI?[?[?g??[SMISIMAAAMIEEEIISSSSSMSMMIIEEEEAEAAES?gg?????[MMIMIEAAEIMIIIM[[[[[SSSSMIEEAEEEAAAES?[[?g???MMEEEI>AAEMSMMMS[gg[[SSSSMIEEEEEEEAEE[??g?g???MMEIEIAAAIMSMMSM[[[[SSSMIIEEEAEEAAAAES[?S?[??gMMEMEMAEASM[MSSSggg[[SSMMIIEEAEEEEEAI?[?[?g??gMMEMIMEEESS[SSSS[g[SMIIIIIEEEAEEEAA>Sgg[?S???MIEEEMIEEISgSSMMMSSSIIIIMMIEAAAEAEA>>???S?I???EAEIE?IMEIMSSMIIMMSSMMIIEEEEAAAEMIISM???MMIgSSIIMS[??g[IMMMMSSSSSSSSMMIEEEEIIMSMMMS???g[[ggg[SSS[g[[[SMMMIIMMIIIIIIIEAAAEMMMSSMMM[g[[[[SSg[[[[SMSSMMMMIMSMIIEEIIIIIIEAEIIMMIMIIMSSMSMSS[[[S[SSSMSSSMMMIIIIEEEAAEIIAEIIIMMIIISMSMMMSMSSSSSSSS[[S[[SSMSSSMMMMIMMMMIMIIMMMSISISIMMMMMMMS --- NEW FILE: msg_34.txt --- From: aperson at dom.ain To: bperson at dom.ain Content-Type: multipart/digest; boundary=XYZ --XYZ Content-Type: text/plain This is a text plain part that is counter to recommended practice in RFC 2046, $5.1.5, but is not illegal --XYZ From: cperson at dom.ain To: dperson at dom.ain A submessage --XYZ-- --- NEW FILE: msg_35.txt --- From: aperson at dom.ain To: bperson at dom.ain Subject: here's something interesting counter to RFC 2822, there's no separating newline here _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Fri May 7 15:20:07 2004 From: tismer at centera.de (Christian Tismer) Date: Fri, 07 May 2004 15:20:07 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/testbench testbench.cpp, 1.5, 1.6 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/testbench In directory centera.de:/tmp/cvs-serv18278/dev/Stackless/testbench Modified Files: testbench.cpp Log Message: refcounting Index: testbench.cpp =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/testbench/testbench.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** testbench.cpp 3 May 2004 16:53:39 -0000 1.5 --- testbench.cpp 7 May 2004 13:20:04 -0000 1.6 *************** *** 232,236 **** // PyThreadState_Swap(m_interp); CPCE(PySW_CleanupTasklet( m_tasklet ), msg); ! // Py_XDECREF(m_tasklet); m_tasklet = NULL; } --- 232,236 ---- // PyThreadState_Swap(m_interp); CPCE(PySW_CleanupTasklet( m_tasklet ), msg); ! Py_XDECREF(m_tasklet); m_tasklet = NULL; } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From bob at centera.de Fri May 7 20:41:48 2004 From: bob at centera.de (Bob Ippolito) Date: Fri, 07 May 2004 20:41:48 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev Makefile.pre.in, 1.34, 1.35 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev In directory centera.de:/tmp/cvs-serv25773 Modified Files: Makefile.pre.in Log Message: Fix a typo in the makefile Sort out some "pythonw" issues on the Mac Index: Makefile.pre.in =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Makefile.pre.in,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** Makefile.pre.in 7 May 2004 16:35:54 -0000 1.34 --- Makefile.pre.in 7 May 2004 18:41:46 -0000 1.35 *************** *** 794,798 **** do \ if test ! -d $(DESTDIR)$(INCLUDEPY)$$j; then \ ! echo "Creating directory $(DESTDIR)$(INCLUDEPY)/$$j; \ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(INCLUDEPY)/$$j; \ else true; \ --- 794,798 ---- do \ if test ! -d $(DESTDIR)$(INCLUDEPY)$$j; then \ ! echo "Creating directory $(DESTDIR)$(INCLUDEPY)/$$j"; \ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(INCLUDEPY)/$$j; \ else true; \ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 3 18:50:21 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 03 May 2004 18:50:21 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Stackless/pickling prickelpit.c, 1.77, 1.78 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Stackless/pickling In directory centera.de:/tmp/cvs-serv19975/pickling Modified Files: prickelpit.c Log Message: completely back-ported Stackless to Python 2.2.3. It passes all relevant tests, supports pickling etc. The gola is to keep the core files identical as long as possible. This caused a few changes to the test files, which need to figure out which tests to omit, for instance. This 2.2.3 versiion is almost identical to the original, but a few changes: - Pickling does not check for __safe_for_unpickling__ - Generators don't need from __future__ import generators - code objects have a builtin tp_new method. These changes *all* vanish if STACKLESS_OFF is defined. Index: prickelpit.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Stackless/pickling/prickelpit.c,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -d -r1.77 -r1.78 *** prickelpit.c 2 May 2004 15:05:25 -0000 1.77 --- prickelpit.c 3 May 2004 16:50:18 -0000 1.78 *************** *** 248,252 **** retval = PyMapping_GetItemString(globals, retname); } - /* clear cycles early. Py 2.2.3 doesn't like GC during Type_Ready */ PyDict_Clear(globals); Py_DECREF(globals); --- 248,251 ---- *************** *** 511,515 **** static PyObject * ! codeobject_reduce(PyCodeObject * co) { PyObject *tup = Py_BuildValue( --- 510,514 ---- static PyObject * ! code_reduce(PyCodeObject * co) { PyObject *tup = Py_BuildValue( *************** *** 535,539 **** } ! MAKE_WRAPPERTYPE(PyCode_Type, code, "code", codeobject_reduce, generic_new, generic_setstate) --- 534,538 ---- } ! MAKE_WRAPPERTYPE(PyCode_Type, code, "code", code_reduce, generic_new, generic_setstate) *************** *** 1688,1693 **** ******************************************************/ - #if PY_VERSION_HEX >= 0x02030000 - /* * unfortunately we have to copy here. --- 1687,1690 ---- *************** *** 1729,1734 **** #define initchain init_rangetype - #endif /* PY_VERSION_HEX < 0x02030000 */ - /****************************************************** --- 1726,1729 ---- *************** *** 1848,1852 **** ******************************************************/ ! /* XXX should we make this a global definition? */ typedef struct { --- 1843,1851 ---- ******************************************************/ ! /* Note: this definition is not compatible to 2.2.3, since ! the gi_weakreflist does not exist. Therefore, we don't ! create the object ourselves, but use the provided function ! with a fake frame. The gi_weakreflist is not touched. ! */ typedef struct { *************** *** 1883,1894 **** if (is_wrong_type(type)) return NULL; ! gen = PyObject_GC_New(genobject, &wrap_PyGenerator_Type); if (gen == NULL) return NULL; Py_INCREF(Py_None); ! gen->gi_frame = (PyFrameObject *) Py_None; ! gen->gi_running = 0; ! gen->gi_weakreflist = NULL; ! _PyObject_GC_TRACK(gen); return (PyObject *) gen; } --- 1882,1890 ---- if (is_wrong_type(type)) return NULL; ! gen = (genobject *) PyGenerator_New((PyFrameObject *) Py_None); if (gen == NULL) return NULL; Py_INCREF(Py_None); ! gen->ob_type = type; return (PyObject *) gen; } *************** *** 1953,1959 **** int res; genobject *gen = (genobject *) run_script( - #if PY_VERSION_HEX < 0x02030000 - "from __future__ import generators\n" - #endif "def f(): yield 42\n" /* define a generator */ "g = f()\n" /* instanciate it */ --- 1949,1952 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:18 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:18 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj/MyDocument.nib classes.nib, 1.1, NONE info.nib, 1.1, NONE objects.nib, 1.2, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj/MyDocument.nib In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj/MyDocument.nib Removed Files: classes.nib info.nib objects.nib Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- classes.nib DELETED --- --- info.nib DELETED --- --- objects.nib DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:51 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:51 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Modules/folder - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Modules/folder In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Modules/folder Log Message: Directory /home/cvs/slpdev/src/2.2/src/Mac/Modules/folder added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:36 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:36 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Contrib/BBPy.lm Python, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Contrib/BBPy.lm In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Contrib/BBPy.lm Modified Files: Python Log Message: hopefully this is now a base version Index: Python =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/Contrib/BBPy.lm/Python,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Python 21 Aug 2003 16:59:15 -0000 1.2 --- Python 1 May 2004 00:44:33 -0000 1.3 *************** *** 1 **** ! (This file must be converted with BinHex 4.0) :!!"#3Na08LTMD!#3""5,!!!$"mhr5Qpj)A"PCQC`Gh"M!!!!!EE-IXm!N!d$!!) !N!6rN!3!N!B5C!!!%Q3!!"*N!!!!i!!%"!$rN!3!N!B"E!!!!93!!!%l!!!68!) ""!$rN!3!N!pB!!!!J!3%"!#3#!%!!!!8rj!%!*!%rj!%!*!2!3!!!%3!!!"3!!! !8!!!!!%!N!8"!*!&"3#3"%)$J!0'!)!(3!X!N")i!!!!Q!-!!)!%!#D3!!-!#)! %!#D3!!-!")#N!"+!"!!QI!8#&*!!!`!-L!-!!#J!!!"!JJ!XJ+-!")!%!"jm"3" !3B!!()#M!!b!"!!LI!8#&*!!!`!-1!!!!CJ$!!#!B`!-L'-!!%k!!#!!N!8*)%! !N!GS!#)ZFh4KFR4IAdC50R*eEQa[Be)a0%*#6%e3BA*KE8*XEf0VJ+-!")!%!"C m"3"!3)!!@$J&!!'3!!-!")#M!!`i"3!"N!!$!!b)!`!!+!!!!%##!#b!S`!%J!3 !(R`&!%""J!!FJ+-!$)!%!#*m"3)8N!!$!!`i!!!"Q!-!!)"M!!b)B`!!6S!!)$K J!!"1J!!J!*!"!!*!(E!!P,QjPH(4MD'&bAep'8MCbG at jXEf05-64#3Na08'& bB at e#E'pMD`"m#!+QN!!"!!L8)Ir!I'JEH(b!)hKmTbYi,!F!!%#"!#4m`c0i2)" 3H6L%G'Kp"80iI!B$H$N!!!")!!"45!!!#$KJ!!'!!3")1#%!3(`)!kC1J!!J!*! ""J!#3"P3!)LjKC'45G at jIAdCcD@P53c%h3N*-680KE'aLB at 0V3Qa[BfYm#!+ QN!!"!!L8)Ir!I'NEH(b$)hKmT#YiI-8cH(cQ1hKp"d0iJBN!,%J!%&f!33!89'! '2RaJ!0!`!rrrI!!C%&3$"Mk!!3")1#%!3(`)!kC1J!!J!*!""J!#3"P3!+5j LBQaY3 at 4N8R9ZAep'8%-a0d*#6%e$B at aXBQ&MDd*XEf0V9 at acE'aL!(`)!UD6iIr mN!!"!!L8)Ir!I*mMH(bQ+hL!R`!)J"m!"(bN!&",rrl&J"m!"*!!(`!)J!%!5$J K!%"m#!1QJq(rr%k!!#!!N!8*)%'!!3#3"83!,LjKC'45G at j#C at C[FQ9IAdCc8MC bG at jXEf053c%h3N*-680KE'aLB at 0V3Qa[BfYm#!+QNq(rr*!!!3!)P#(r`(bI)hK mTLYiJ*m!#)!I!!4mT!"31+8!!8[rrMf!R`!%1!3!!C!!(`!)J!%!5$JK!%"m#!1 QJq(rr%k!!#!!N!8*)%'!!3#3"8`!+LjKC'45G at j8EepI4R050R*eEQa[Be*$-6G #3Na03f&XE'*KBfY#E'pMDh`)!UDq`IrBN!!"!!L8)Iq3!(af'hKmQL0iI,XVH(c F-hJl)!!!1q!!!$[!!!!lS!!"If2EH(p%dhK,rrd"I(FEH(lJ"h4qf!GdI!$!!%# #!%KrBpYiId66H%[rr1&mB!GdI!$!!%##!"`l)!!"If2EH(p%dhK,rrc&I(FEH%J !!"JiB!!&If6EH(q&ihK,rrjT5!!"Q&Fj"Mjqf!Gd5!!"+&IJ"MiS!!!!3B)!2(l M"h4)!!(G,!-!!%'#!"`iB!%!If6EH(q&ihK,rrkaI(dEH%J!!"4qi!Gd,!!!+%# #!!Jl`!!"1q!!!(lJ"h4m!-!!3))!3#JC!!""JJ$NIf2EH(p%dhK,rr`eI'!(G(` B!!"!JJ#NIf2EH(p%dhK,rr`GI'!(G(`B!!""JJ#d5!!!L#`!!&a!JJ!8If2EH(p %dhK,rr[j5!!!F#`!!!e"JJ!-,!!!#N##!"!S'3!!3B)!J%J!!&3X!!!P3))!)$K J!!9rC0YiIiAMH%[rrAemI4Yi1q!!!8J!!$!X!!!T3))!+&I!"MiS!!!!3B)!($K J!3"rC0YiIiAMH%[rrG&mI4Yi1m!!!(pMfhKr400i5rrlIAah'hKqi!Gd,!!!!%' #!""AS!Bq+!!!!%##rXJl!!!!9k!'2LJ!!!""JJ!m9m!'2LJ!!!""JJ!-1!!"!%J !!!Ji!!!&I!-(0(pNfhKrKH0i5rrpD94J"MiS!!!!3B)!#$X!!!&r!m0iJ!%!H$J K!("m#!1QZX(rf%k!!#!!N!8*)%'!#J#3"!)m!$XZBfpXEh*cG(*IAdCM8M%d3N* -69"KFQ&Y3Qa[BfY50R*eEQa[Be*$-6G#3Na03f&XE'*KBfY#E'pMD`!!!$L#!&4 8B!BqI!3!VP3$"M*1J!!J!*!"!!*!(&!!3,QPcB at a`D'&IAc0cG'4'D3!!I!J #TT2Krrb6`IriNk(rp*!!!3!)P#(rX(ap'hKmRL0iI,mVH%J!!"KmB!Gd,!!!$8' #!#3X!!!+3B)!((r$mhKrT1Yi5rrk-AaJ"h3X!!!!3),rf$KJ!!4ra20iIqAlH%[ rr&@!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J!*!""J!-!N!@!!$iZBfp XEh*MEfeYC at jdAep'8M%d3N*-69"KFQ&Y3Qa[BfY50R*eEQa[Be*$-6G#3Na03f& XE'*KBfY#E'pMDh`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)IqJI(`EH(bG)hJ li!!"1'%!1(q%ihK,rrMCI(iEH%J!!+ar`!Gd,!!!)d'#!&a!J!!3,!!!)N#!!"4 )!!#!,!!!*d'#!!K)!!"d1'!!!$L"!$KrTHYi5rrkmAar'hKAi!Bq+!!!!%'#!&4 r`r0iIi6MH$LK!$KrTZYi5rrlfAar'hK)!!!i1'!!!$L"!$KrTHYi5rrkYAar'hK Ai!Bq+!!!!%'#!"KrJq0i1)%!1(qPkhK,rrjPI(mEH$KK!$KrK10i5rribAaq'hK r`!Gd,!!!!%'#!""Ai!Bq+!!!!%##rd4Ai!Bq+!!!!%'#!"3iB!!!1)%!1(qPkhK ,rrT0J!%!D$JK!'"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#!!N!8*)%'!"!#3"!% i!$FZ3f&XBh9XBA4P8R9ZFepI4P)a0%*#6%e3BA*KE8*XEf0V8N-a0d*#6%e$B at a XBQ&MDd*XEf0V!!!!I!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rS(ap'hKmRL0iJrd !*NJ!!!Jlrrrr+"m!!%'#!%"r`r0iIq6lH$LK!%3i`3"!11%!2$N"!$K)!!#09'! '2LJ!!!""JJ!BU!%!3#`!!3""J[r%,!!!"8'#rlb6r3!QJ!%!D$JK!'"m#!1QJq( rr)2"rrL$SIrd6S!!)!#3"3NJ3B!$!*!&N!!!05j"C'TeFh45B at jRC9pI4P)a0%* #6%e3BA*KE8*XEf0V8N-a0d*#6%e$B at aXBQ&MDd*XEf0V!(`)!UD3!!%!#*3Krm" mD4YiI)-MH(bN+hKma60iI1BlH(d(3hL"L3!N5!!)dB""!"48B!BqI'!!d$!$rrp m!"N39!-'2S!"!%Ji)3"!I!J$TNk!!#!!N!8*)%'!!*!'9!!Y,Q*LE'e(CA45G at j IAdC33c%h3N*-680KE'aLB at 0V3Qa[BfYX8P9X8R05E&*X!(`)!UD6iIrmNm(rq*1 Krr53!!%!#*3Krl"m[LYiL!-!'LJ!!!""JJ!-1k!!!%J!!!L$S`!51q!!!%J!!%5 !(J!!I+$k&)!$!"Cm"3"!3B!!$$KJ!!")!!#3!(`G++jm"3GdI-!(G(`&!!""JJ! -1'!!!%J!!(3lr`!"1)3!!BM%!!"m`!Gd,!!!!%##rl5!(J!!I)$k&)!$!"Cm"!" !3)!!1(ap)+jmB`Gd5!!!N5`$!!"!JJ!FJ"i!!(`!qK4m(3#ZI!!(G#`!!&p!JJ! -1'!!!%J!!"5!(J!!I!$k&*!!(J!!1'!!!B!"!&Ji)3"3I!J$TS2Krrb$`IriJk( rp%k!!#!!N!8*)%'!!`#3"!%!!#3ZE@&dBfKhEh*NAep'8M%d3N*-69"KFQ&Y3Qa [BfY33f039@`!!$L#!&48B!BqI!3!VR!$!0"1J!!J!*!"!!*!(&!!3,QPcB at a ZG at eIAc0cG'4'D3!!L!-!'LJ!!!""JJ!-1-!!!%J!!!L!``!511!!!%J!!'Km"LL ZI!!(G#`!!#""JJ!J3)!!%#`!!!P"JJ!S5!!!3#`!!#0"JJ!`5!!!0)#N!!!i"3! "N!!%!!!ij`!"5!!!+)#N!!!i"3!"N!!%!!!ij`!)5!!!&$KJrrp1J!!JI1-lH%k !!##!T!!!J!-!&R`&!%""J2q3!%k!!#!!N!8*)%!!N!HB!#-ZE@&dBfKTEQ4PER4 IAdC5-64#3Na08'&bB at e#E'pMDe"9E!!!!)J$!"SS!!!!3B)!$$M!!!")!!!BJ-- !%NJ!!"#!T!!!1!8!!C!!"!!!J+3!!(`'++jm!!Gd,!!!$8'#!#JX!!!+3B)!))! $!"Cm"3"!3B$rd%J!!"#!T!!!1!8!!C!!"!!!J+3!!(`'++jm!!Gd,!!!$8'#!!` X!!!+6))!))!$!"Cm"3"!3B$rd%k!!#!!N!8*)%!!N!H-!#!ZC@&dAfaTEQ9IAdC 5-64#3Na08'&bB at e#E'pMDe"9E!!!I!J#TVlKrpb3!!%!#*3Krf"mHKYiI*XMH(b m+hKmh60iI2ilH$[J!!!i!!!!N!!"!'L$'J!5IcMD&%J!!!`lH`!"1cN!!BKj!!" mB`Gd5!!#@5`$!!""JJ!3J"S!&R`E!%""J2rFIhIEH%J!!!`lH`!"1rm!!AmifK5 )H3!!I'-(G%[rrENX!`!!3))!&)JC!!"m!!Gd,!!!Ad##!"#!'J!@I"X!3%'!rmK r`r0iJ*S!*RbiZK4rj[YiL"S!'RcJ!0!`"rrrI!!j%&3("Mij!3"S5!!"5C,K!$L 6B3!mNZ%!3*0K!%55i3")9k!'2T!!!3"3Ni%!6$J!!!#3!!%!9)!"!'L3!!%!@*2 K!&ar`r0iJ*S!+MLK!$Ji`3"N5!!!GB!"!+Ji)3#JI!J$TVVKrpa1J!!J!*!" "J!N!N!3"-!"(,Q&NC%PdC at eIAdC5-64#3Na08'&bB at e#E'pMDe9XD6%h3N*-68C eEQ0dD at pZ5fPZC(033c%h3N*-680KE'aLB at 0V3Qa[BfX!!!"m#!+QN!!"!!L8)Ir !I'FEH(b$)hKmT#YiI-8cH)'(!"4)!!1jJ%%!&)!"!%Ji)3"!I!J$TNk!!#!!N!8 *)%'!!*!'1!"#,Q*LE'e"C'4'G at jMG'P[EP4[6'PcG&pI4P"$-6G#3Na03f&XE'* KBfY#E'pMDe9X8M%b3N*-69"bEf0*EQC[8&9XI!J#TT!!!3!)P#(r`(aT'hKmJb0 iI+3VH(c&-hKmjMYiI3G$H)'*!"")!!-PJ%%!&)!"!%Ji)3"!I!J$TNk!!#!!N!8 *)%'!!*!'3!!h,Q*LE'e"C'48EfYPEP4[3R9QCQ9bAep'8%-a0d*#6%e$B at aXBQ& MDd*XEf0V9 at a3GP9XBP"9E!!!!$L#!&48B!BqI!3!VP3$"ha1J!!J!*!"!!*! (&!!3,QPcFh"KBf9IAc0cG'4'D3!!I!J#TVpKrqb3!!%!#*3Kri"mI4YiI*iMH$[ L!"`iJJ&8J'3!!)!%!!53!'%!6*!!!3"3J'3!#)!%!!b3!'%!9*!!!3"BJ!3!%*! !!3"F1f!!!$J!!!#3!!%!5$Z"!%a)!!$FIk2VH$L"!%K,rrXa,!-!!%'!!,`iS!! !1)%!6$JE!!&m#31Q,"X!!%'!!#b!"!!!I!-!!%'"!"4mZbYi9+!31Ram!5j)!!! F1)3!"$LP!!&#!2rF1hX!!9GJ%$TmI!%ZIk2VH$L#!"!iS3")5rrjA94J"MiS!!! !3B)!)(qMkhL!J3")IfAEH$M!!!"rar0i5rrm18J!!$KrSqYiIq6lH$LK!%K,rrN P9'!'2LJ!!!""JJ!FIk2VH)#"!%KrCGYi1-!!!Ar(mhK,rr`"Ik2VH$L"!%K,rrX eJ'%!5)!G!"Cm!`"!3B$r()!"!)Ji)3#!I!J$TVYKrqa1J!!J!*!""J!8!N!3 "@!!k,P0MB at j'Eh*'G at jMG'P[ER0IAdC5-64#3Na08'&bB at e#E'pMDe*$-6G#3Na 03f&XE'*KBfY#E'pMDh`)!UD3!!%!#*3Krm#!S`!!2!@YeLJ!BfK!JJ!3J!-!##J !!LC!J!!-1'$rcNJ!!*!!L!-!$#J!!!Y"J3#!1+)!*&3!%$TmT3!ZI+N$TNk!"#! iB!!!5!!!D%[rp6NiB!!!5!!!A%[rrINiB!!!5!!!8%[rpU8iB!!!5!!!4+J$!#B X!!%!3B)!#%J!!"Ji!!!)X!-!+$J!!!'B!`!U5!!!$$J!!!#B!`!U1'!!!%J!!"! iB2q!5!!!#$KJrmk!!3")1#%!3(`)!kC1J!!J!*!""J!#3"X`!"5jYB at PZ!)! -!!#3!%%!&(`*!kD!6!!%6S!%)%k!!#!!N!`$)93$)53$)4`#*3&8C'9Q!b)4D!3 PBfaKFh-&)K)JJJ)+%EJ4Z"(-%GJ4`")B%KJ4j")B%KJJJJ%5'!'3#3+3"3'3%J3 )N!m`N!S)N!HJN!D!N"3)N!CJN!C!N"3)N!3"J*!(3*!C#*!(3!L3"S#!#*!13%! )N!S%J*!%3!L3#%#!#*!%3%!)N!@!N!X)J*!%#*!+!836!!!"!!!!!Q3!!!&N!!! !S`#3mai!!3!"8(PdD!!!!"-%)3C3HA4SEfi!!!%!!!-ZF(N!!!!2!3#!!!!!!c% Z-33a,M%X!!!!1!%!J!!!!"KAC at 4ZCA0NBANX)%eKFQ0S)$FX)$)`-$%B9f9NEQ9 cC'&j,#"0BA*MD#!h,#!b-$!a!!!!Pf&ZC!N0BA0cCA*d$@*bC@&V$@0XBA0c$@0 [ER4TER9P$@4PCJeNC@`0C at aTCJePE(0P$@9iBf9`G!ePH'9M$@CTEQ&XE(N0CQp b$@CbEfd0Cfa[BQ&X$@PQ$@PYF'pbG!eTEJeTF`eXB at eLC'%0EQpd$@pb$A"KFh- 0F(*TER30FQ&TFf80FQ9dGA*Z$A4bH3ehD'PXC3d!!!"8!*!,!3#3%`&`Gh"M!*! 6!3#3%63'8(PdD'pZ!*!&!3!!!!*N!!!"C!!!!+066e*8!qS!J!!F!(S!!d*#6%B !!!!L9%9B9!!!!#jMCR*R!!!!1RCPFR-!!3"'!)!!!#!!N!F%)3!C!!!!F3#3"[r r!!!"$!BkdC!!!!(rr`!!!#)!N!8#rrm!!!!e!*!%'&"jG'K[EL"-B at jRG@&RC5" 0BA"`D at jRF`p3HA4SEfiJ5f9jGfpbC(26q`: \ No newline at end of file --- 1 ---- ! (This file must be converted with BinHex 4.0) :!!"#3Na08LTMD!#3""5,!!!$"mhr5Qpj)A"PCQC`Gh"M!!!!!EE-IXm!N!d$!!) !N!6rN!3!N!B5C!!!%Q3!!"*N!!!!i!!%"!$rN!3!N!B"E!!!!93!!!%l!!!68!) ""!$rN!3!N!pB!!!!J!3%"!#3#!%!!!!8rj!%!*!%rj!%!*!2!3!!!%3!!!"3!!! !8!!!!!%!N!8"!*!&"3#3"%)$J!0'!)!(3!X!N")i!!!!Q!-!!)!%!#D3!!-!#)! %!#D3!!-!")#N!"+!"!!QI!8#&*!!!`!-L!-!!#J!!!"!JJ!XJ+-!")!%!"jm"3" !3B!!()#M!!b!"!!LI!8#&*!!!`!-1!!!!CJ$!!#!B`!-L'-!!%k!!#!!N!8*)%! !N!GS!#)ZFh4KFR4IAdC50R*eEQa[Be)a0%*#6%e3BA*KE8*XEf0VJ+-!")!%!"C m"3"!3)!!@$J&!!'3!!-!")#M!!`i"3!"N!!$!!b)!`!!+!!!!%##!#b!S`!%J!3 !(R`&!%""J!!FJ+-!$)!%!#*m"3)8N!!$!!`i!!!"Q!-!!)"M!!b)B`!!6S!!)$K J!!"1J!!J!*!"!!*!(E!!P,QjPH(4MD'&bAep'8MCbG at jXEf05-64#3Na08'& bB at e#E'pMD`"m#!+QN!!"!!L8)Ir!I'JEH(b!)hKmTbYi,!F!!%#"!#4m`c0i2)" 3H6L%G'Kp"80iI!B$H$N!!!")!!"45!!!#$KJ!!'!!3")1#%!3(`)!kC1J!!J!*! ""J!#3"P3!)LjKC'45G at jIAdCcD@P53c%h3N*-680KE'aLB at 0V3Qa[BfYm#!+ QN!!"!!L8)Ir!I'NEH(b$)hKmT#YiI-8cH(cQ1hKp"d0iJBN!,%J!%&f!33!89'! '2RaJ!0!`!rrrI!!C%&3$"Mk!!3")1#%!3(`)!kC1J!!J!*!""J!#3"P3!+5j LBQaY3 at 4N8R9ZAep'8%-a0d*#6%e$B at aXBQ&MDd*XEf0V9 at acE'aL!(`)!UD6iIr mN!!"!!L8)Ir!I*mMH(bQ+hL!R`!)J"m!"(bN!&",rrl&J"m!"*!!(`!)J!%!5$J K!%"m#!1QJq(rr%k!!#!!N!8*)%'!!3#3"83!,LjKC'45G at j#C at C[FQ9IAdCc8MC bG at jXEf053c%h3N*-680KE'aLB at 0V3Qa[BfYm#!+QNq(rr*!!!3!)P#(r`(bI)hK mTLYiJ*m!#)!I!!4mT!"31+8!!8[rrMf!R`!%1!3!!C!!(`!)J!%!5$JK!%"m#!1 QJq(rr%k!!#!!N!8*)%'!!3#3"8`!+LjKC'45G at j8EepI4R050R*eEQa[Be*$-6G #3Na03f&XE'*KBfY#E'pMDh`)!UDq`IrBN!!"!!L8)Iq3!(af'hKmQL0iI,XVH(c F-hJl)!!!1q!!!$[!!!!lS!!"If2EH(p%dhK,rrd"I(FEH(lJ"h4qf!GdI!$!!%# #!%KrBpYiId66H%[rr1&mB!GdI!$!!%##!"`l)!!"If2EH(p%dhK,rrc&I(FEH%J !!"JiB!!&If6EH(q&ihK,rrjT5!!"Q&Fj"Mjqf!Gd5!!"+&IJ"MiS!!!!3B)!2(l M"h4)!!(G,!-!!%'#!"`iB!%!If6EH(q&ihK,rrkaI(dEH%J!!"4qi!Gd,!!!+%# #!!Jl`!!"1q!!!(lJ"h4m!-!!3))!3#JC!!""JJ$NIf2EH(p%dhK,rr`eI'!(G(` B!!"!JJ#NIf2EH(p%dhK,rr`GI'!(G(`B!!""JJ#d5!!!L#`!!&a!JJ!8If2EH(p %dhK,rr[j5!!!F#`!!!e"JJ!-,!!!#N##!"!S'3!!3B)!J%J!!&3X!!!P3))!)$K J!!9rC0YiIiAMH%[rrAemI4Yi1q!!!8J!!$!X!!!T3))!+&I!"MiS!!!!3B)!($K J!3"rC0YiIiAMH%[rrG&mI4Yi1m!!!(pMfhKr400i5rrlIAah'hKqi!Gd,!!!!%' #!""AS!Bq+!!!!%##rXJl!!!!9k!'2LJ!!!""JJ!m9m!'2LJ!!!""JJ!-1!!"!%J !!!Ji!!!&I!-(0(pNfhKrKH0i5rrpD94J"MiS!!!!3B)!#$X!!!&r!m0iJ!%!H$J K!("m#!1QZX(rf%k!!#!!N!8*)%'!#J#3"!)m!$XZBfpXEh*cG(*IAdCM8M%d3N* -69"KFQ&Y3Qa[BfY50R*eEQa[Be*$-6G#3Na03f&XE'*KBfY#E'pMD`!!!$L#!&4 8B!BqI!3!VP3$"M*1J!!J!*!"!!*!(&!!3,QPcB at a`D'&IAc0cG'4'D3!!I!J #TT2Krrb6`IriNk(rp*!!!3!)P#(rX(ap'hKmRL0iI,mVH%J!!"KmB!Gd,!!!$8' #!#3X!!!+3B)!((r$mhKrT1Yi5rrk-AaJ"h3X!!!!3),rf$KJ!!4ra20iIqAlH%[ rr&@!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J!*!""J!-!N!@!!$iZBfp XEh*MEfeYC at jdAep'8M%d3N*-69"KFQ&Y3Qa[BfY50R*eEQa[Be*$-6G#3Na03f& XE'*KBfY#E'pMDh`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)IqJI(`EH(bG)hJ li!!"1'%!1(q%ihK,rrMCI(iEH%J!!+ar`!Gd,!!!)d'#!&a!J!!3,!!!)N#!!"4 )!!#!,!!!*d'#!!K)!!"d1'!!!$L"!$KrTHYi5rrkmAar'hKAi!Bq+!!!!%'#!&4 r`r0iIi6MH$LK!$KrTZYi5rrlfAar'hK)!!!i1'!!!$L"!$KrTHYi5rrkYAar'hK Ai!Bq+!!!!%'#!"KrJq0i1)%!1(qPkhK,rrjPI(mEH$KK!$KrK10i5rribAaq'hK r`!Gd,!!!!%'#!""Ai!Bq+!!!!%##rd4Ai!Bq+!!!!%'#!"3iB!!!1)%!1(qPkhK ,rrT0J!%!D$JK!'"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#!!N!8*)%'!"!#3"!% i!$FZ3f&XBh9XBA4P8R9ZFepI4P)a0%*#6%e3BA*KE8*XEf0V8N-a0d*#6%e$B at a XBQ&MDd*XEf0V!!!!I!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rS(ap'hKmRL0iJrd !*NJ!!!Jlrrrr+"m!!%'#!%"r`r0iIq6lH$LK!%3i`3"!11%!2$N"!$K)!!#09'! '2LJ!!!""JJ!BU!%!3#`!!3""J[r%,!!!"8'#rlb6r3!QJ!%!D$JK!'"m#!1QJq( rr)2"rrL$SIrd6S!!)!#3"3NJ3B!$!*!&N!!!05j"C'TeFh45B at jRC9pI4P)a0%* #6%e3BA*KE8*XEf0V8N-a0d*#6%e$B at aXBQ&MDd*XEf0V!(`)!UD3!!%!#*3Krm" mD4YiI)-MH(bN+hKma60iI1BlH(d(3hL"L3!N5!!)dB""!"48B!BqI'!!d$!$rrp m!"N39!-'2S!"!%Ji)3"!I!J$TNk!!#!!N!8*)%'!!*!'9!!Y,Q*LE'e(CA45G at j IAdC33c%h3N*-680KE'aLB at 0V3Qa[BfYX8P9X8R05E&*X!(`)!UD6iIrmNm(rq*1 Krr53!!%!#*3Krl"m[LYiL!-!'LJ!!!""JJ!-1k!!!%J!!!L$S`!51q!!!%J!!%5 !(J!!I+$k&)!$!"Cm"3"!3B!!$$KJ!!")!!#3!(`G++jm"3GdI-!(G(`&!!""JJ! -1'!!!%J!!(3lr`!"1)3!!BM%!!"m`!Gd,!!!!%##rl5!(J!!I)$k&)!$!"Cm"!" !3)!!1(ap)+jmB`Gd5!!!N5`$!!"!JJ!FJ"i!!(`!qK4m(3#ZI!!(G#`!!&p!JJ! -1'!!!%J!!"5!(J!!I!$k&*!!(J!!1'!!!B!"!&Ji)3"3I!J$TS2Krrb$`IriJk( rp%k!!#!!N!8*)%'!!`#3"!%!!#3ZE@&dBfKhEh*NAep'8M%d3N*-69"KFQ&Y3Qa [BfY33f039@`!!$L#!&48B!BqI!3!VR!$!0"1J!!J!*!"!!*!(&!!3,QPcB at a ZG at eIAc0cG'4'D3!!L!-!'LJ!!!""JJ!-1-!!!%J!!!L!``!511!!!%J!!'Km"LL ZI!!(G#`!!#""JJ!J3)!!%#`!!!P"JJ!S5!!!3#`!!#0"JJ!`5!!!0)#N!!!i"3! "N!!%!!!ij`!"5!!!+)#N!!!i"3!"N!!%!!!ij`!)5!!!&$KJrrp1J!!JI1-lH%k !!##!T!!!J!-!&R`&!%""J2q3!%k!!#!!N!8*)%!!N!HB!#-ZE@&dBfKTEQ4PER4 IAdC5-64#3Na08'&bB at e#E'pMDe"9E!!!!)J$!"SS!!!!3B)!$$M!!!")!!!BJ-- !%NJ!!"#!T!!!1!8!!C!!"!!!J+3!!(`'++jm!!Gd,!!!$8'#!#JX!!!+3B)!))! $!"Cm"3"!3B$rd%J!!"#!T!!!1!8!!C!!"!!!J+3!!(`'++jm!!Gd,!!!$8'#!!` X!!!+6))!))!$!"Cm"3"!3B$rd%k!!#!!N!8*)%!!N!H-!#!ZC@&dAfaTEQ9IAdC 5-64#3Na08'&bB at e#E'pMDe"9E!!!I!J#TVlKrpb3!!%!#*3Krf"mHKYiI*XMH(b m+hKmh60iI2ilH$[J!!!i!!!!N!!"!'L$'J!5IcMD&%J!!!`lH`!"1cN!!BKj!!" mB`Gd5!!#@5`$!!""JJ!3J"S!&R`E!%""J2rFIhIEH%J!!!`lH`!"1rm!!AmifK5 )H3!!I'-(G%[rrENX!`!!3))!&)JC!!"m!!Gd,!!!Ad##!"#!'J!@I"X!3%'!rmK r`r0iJ*S!*RbiZK4rj[YiL"S!'RcJ!0!`"rrrI!!j%&3("Mij!3"S5!!"5C,K!$L 6B3!mNZ%!3*0K!%55i3")9k!'2T!!!3"3Ni%!6$J!!!#3!!%!9)!"!'L3!!%!@*2 K!&ar`r0iJ*S!+MLK!$Ji`3"N5!!!GB!"!+Ji)3#JI!J$TVVKrpa1J!!J!*!" "J!N!N!3"-!"(,Q&NC%PdC at eIAdC5-64#3Na08'&bB at e#E'pMDe9XD6%h3N*-68C eEQ0dD at pZ5fPZC(033c%h3N*-680KE'aLB at 0V3Qa[BfX!!!"m#!+QN!!"!!L8)Ir !I'FEH(b$)hKmT#YiI-8cH)'(!"4)!!1jJ%%!&)!"!%Ji)3"!I!J$TNk!!#!!N!8 *)%'!!*!'1!"#,Q*LE'e"C'4'G at jMG'P[EP4[6'PcG&pI4P"$-6G#3Na03f&XE'* KBfY#E'pMDe9X8M%b3N*-69"bEf0*EQC[8&9XI!J#TT!!!3!)P#(r`(aT'hKmJb0 iI+3VH(c&-hKmjMYiI3G$H)'*!"")!!-PJ%%!&)!"!%Ji)3"!I!J$TNk!!#!!N!8 *)%'!!*!'3!!h,Q*LE'e"C'48EfYPEP4[3R9QCQ9bAep'8%-a0d*#6%e$B at aXBQ& MDd*XEf0V9 at a3GP9XBP"9E!!!!$L#!&48B!BqI!3!VP3$"ha1J!!J!*!"!!*! (&!!3,QPcFh"KBf9IAc0cG'4'D3!!I!J#TVpKrqb3!!%!#*3Kri"mI4YiI*iMH$[ L!"`iJJ&8J'3!!)!%!!53!'%!6*!!!3"3J'3!#)!%!!b3!'%!9*!!!3"BJ!3!%*! !!3"F1f!!!$J!!!#3!!%!5$Z"!%a)!!$FIk2VH$L"!%K,rrXa,!-!!%'!!,`iS!! !1)%!6$JE!!&m#31Q,"X!!%'!!#b!"!!!I!-!!%'"!"4mZbYi9+!31Ram!5j)!!! F1)3!"$LP!!&#!2rF1hX!!9GJ%$TmI!%ZIk2VH$L#!"!iS3")5rrjA94J"MiS!!! !3B)!)(qMkhL!J3")IfAEH$M!!!"rar0i5rrm18J!!$KrSqYiIq6lH$LK!%K,rrN P9'!'2LJ!!!""JJ!FIk2VH)#"!%KrCGYi1-!!!Ar(mhK,rr`"Ik2VH$L"!%K,rrX eJ'%!5)!G!"Cm!`"!3B$r()!"!)Ji)3#!I!J$TVYKrqa1J!!J!*!""J!8!N!3 "@!!k,P0MB at j'Eh*'G at jMG'P[ER0IAdC5-64#3Na08'&bB at e#E'pMDe*$-6G#3Na 03f&XE'*KBfY#E'pMDh`)!UD3!!%!#*3Krm#!S`!!2!@YeLJ!BfK!JJ!3J!-!##J !!LC!J!!-1'$rcNJ!!*!!L!-!$#J!!!Y"J3#!1+)!*&3!%$TmT3!ZI+N$TNk!"#! iB!!!5!!!D%[rp6NiB!!!5!!!A%[rrINiB!!!5!!!8%[rpU8iB!!!5!!!4+J$!#B X!!%!3B)!#%J!!"Ji!!!)X!-!+$J!!!'B!`!U5!!!$$J!!!#B!`!U1'!!!%J!!"! iB2q!5!!!#$KJrmk!!3")1#%!3(`)!kC1J!!J!*!""J!#3"X`!"5jYB at PZ!)! -!!#3!%%!&(`*!kD!6!!%6S!%)%k!!#!!N!`$)93$)53$)4`#*3&8C'9Q!b)4D!3 PBfaKFh-&)K)JJJ)+%EJ4Z"(-%GJ4`")B%KJ4j")B%KJJJJ%5'!'3#3+3"3'3%J3 )N!m`N!S)N!HJN!D!N"3)N!CJN!C!N"3)N!3"J*!(3*!C#*!(3!L3"S#!#*!13%! )N!S%J*!%3!L3#%#!#*!%3%!)N!@!N!X)J*!%#*!+!836!!!"!!!!!Q3!!!&N!!! !S`#3mai!!3!"8(PdD!!!!"-%)3C3HA4SEfi!!!%!!!-ZF(N!!!!2!3#!!!!!!c% Z-33a,M%X!!!!1!%!J!!!!"KAC at 4ZCA0NBANX)%eKFQ0S)$FX)$)`-$%B9f9NEQ9 cC'&j,#"0BA*MD#!h,#!b-$!a!!!!Pf&ZC!N0BA0cCA*d$@*bC@&V$@0XBA0c$@0 [ER4TER9P$@4PCJeNC@`0C at aTCJePE(0P$@9iBf9`G!ePH'9M$@CTEQ&XE(N0CQp b$@CbEfd0Cfa[BQ&X$@PQ$@PYF'pbG!eTEJeTF`eXB at eLC'%0EQpd$@pb$A"KFh- 0F(*TER30FQ&TFf80FQ9dGA*Z$A4bH3ehD'PXC3d!!!"8!*!,!3#3%`&`Gh"M!*! 6!3#3%63'8(PdD'pZ!*!&!3!!!!*N!!!"C!!!!+066e*8!qS!J!!F!(S!!d*#6%B !!!!L9%9B9!!!!#jMCR*R!!!!1RCPFR-!!3"'!)!!!#!!N!F%)3!C!!!!F3#3"[r r!!!"$!BkdC!!!!(rr`!!!#)!N!8#rrm!!!!e!*!%'&"jG'K[EL"-B at jRG@&RC5" 0BA"`D at jRF`p3HA4SEfiJ5f9jGfpbC(26q`: \ No newline at end of file _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 18:54:01 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 18:54:01 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Grammar - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Grammar In directory centera.de:/home/tismer/slpdev/src/2.2/src/Grammar Log Message: Directory /home/cvs/slpdev/src/2.2/src/Grammar added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 24 03:01:23 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 24 May 2004 03:01:23 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/core cframeobject.c, 1.69, 1.70 slp_transfer.c, 1.21, 1.22 stackless_impl.h, 1.87, 1.88 stackless_structs.h, 1.62, 1.63 stackless_tstate.h, 1.50, 1.51 stackless_util.c, 1.18, 1.19 stacklesseval.c, 1.147, 1.148 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/core In directory centera.de:/tmp/cvs-serv31331/core Modified Files: cframeobject.c slp_transfer.c stackless_impl.h stackless_structs.h stackless_tstate.h stackless_util.c stacklesseval.c Log Message: This is Stackless 3.1 alpha. Stackless is supporting Real Threads! There are a few glitches: The unit tests don't pass all, yet. Revive_main has been dropped in favor of a global dead-lock check. Maybe this needs a bit more work. There is a global interthread lock. I'm not sure whether it is really needed. Anyway, this thing works nicely with threads. I'm very happy to release this new version, after a full week of day and night hacking. Btw.: channels are not working compatibly, right now. Their policy to prefer receivers to be unlocked is not set at the moment. I will set the default back, ASAP and provide a computed attribute to control this with the next check-in. Index: cframeobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/cframeobject.c,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** cframeobject.c 3 May 2004 16:53:39 -0000 1.69 --- cframeobject.c 24 May 2004 01:01:20 -0000 1.70 *************** *** 1,5 **** /****************************************************** ! The CFrame and friends ******************************************************/ --- 1,5 ---- /****************************************************** ! The CFrame ******************************************************/ *************** *** 10,14 **** * A CFrame does not appear in tracebacks, but it does * play a role in frame chains. - * At the moment, it can only appear as a toplevel frame of a tasklet. * * For simplicity, it mimicks the fields which slp_transfer needs --- 10,13 ---- *************** *** 21,31 **** * how to handle them. * ! * In order to avoid incompatibilities with standard modules ! * like traceback, which might reach a cframe through ! * the extract_stack function, there is a couple of ! * computed attributes provided. ! * ! * XXX this is no longer true, baseframes don't show up in frame ! * chains any longer. Future target: use thunks, instead. */ --- 20,26 ---- * how to handle them. * ! * XXX in a later, thunk-based implementation, CFrames should ! * vanish and be replaced by special thunks, which don't mess ! * with the frame chain. */ *************** *** 36,102 **** #include "pickling/prickelpit.h" - /* access macro to the members which are floating "behind" the object */ - - #define PyBaseFrame_GET_MEMBERS(frame) \ - ((PyObject **)(((char *)frame) + (frame)->ob_type->tp_basicsize)) static void ! baseframe_dealloc(PyBaseFrameObject *c) { ! int i; ! PyObject ** f_params = PyBaseFrame_GET_MEMBERS(c); ! ! PyObject_GC_UnTrack(c); ! Py_XDECREF(c->f_back); ! for (i=0; i < c->ob_size; ++i) { ! Py_XDECREF(f_params[i]); ! } ! PyObject_GC_Del(c); } static int ! baseframe_traverse(PyBaseFrameObject *c, visitproc visit, void *arg) { ! int i, err; ! PyObject ** f_params = PyBaseFrame_GET_MEMBERS(c); #define VISIT(o) if (o) {if ((err = visit((PyObject *)(o), arg))) return err;} ! VISIT(c->f_back); ! for (i=0; i < c->ob_size; ++i) { ! VISIT(f_params[i]); ! } return 0; } ! /* clearing a baseframe while the objects still exists */ static void ! baseframe_clear(PyBaseFrameObject *c) { ! int i; ! PyObject ** f_params = PyBaseFrame_GET_MEMBERS(c); ! ! for (i=0; i < c->ob_size; ++i) { ! PyObject *hold = f_params[i]; ! if (hold != NULL) { ! f_params[i] = NULL; ! Py_DECREF(hold); ! } } ! /* note that the object is still alive, and ready for normal destruction without side effects */ } ! PyBaseFrameObject * ! slp_baseframe_new(PyFrame_ExecFunc *exec, unsigned int linked, unsigned int extra) { PyThreadState *ts = PyThreadState_GET(); ! PyBaseFrameObject *c; PyFrameObject *back; - int i; ! c = PyObject_GC_NewVar(PyBaseFrameObject, &PyBaseFrame_Type, extra); ! if (c == NULL) return NULL; --- 31,89 ---- #include "pickling/prickelpit.h" static void ! cframe_dealloc(PyCFrameObject *cf) { ! PyObject_GC_UnTrack(cf); ! Py_XDECREF(cf->f_back); ! Py_XDECREF(cf->ob1); ! Py_XDECREF(cf->ob2); ! Py_XDECREF(cf->ob3); ! PyObject_GC_Del(cf); } static int ! cframe_traverse(PyCFrameObject *cf, visitproc visit, void *arg) { ! int err; #define VISIT(o) if (o) {if ((err = visit((PyObject *)(o), arg))) return err;} ! VISIT(cf->f_back); ! VISIT(cf->ob1); ! VISIT(cf->ob2); ! VISIT(cf->ob3); ! #undef VISIT return 0; } ! /* clearing a cframe while the object still exists */ static void ! cframe_clear(PyCFrameObject *cf) { ! #define ZAP(x) \ ! if (x != NULL) { \ ! PyObject *_hold = (PyObject *) x; \ ! x = NULL; \ ! Py_XDECREF(_hold); \ } ! ZAP(cf->f_back); ! ZAP(cf->ob1); ! ZAP(cf->ob2); ! ZAP(cf->ob3); ! #undef ZAP } ! PyCFrameObject * ! slp_cframe_new(PyFrame_ExecFunc *exec, unsigned int linked) { PyThreadState *ts = PyThreadState_GET(); ! PyCFrameObject *cf; PyFrameObject *back; ! cf = PyObject_GC_NewVar(PyCFrameObject, &PyCFrame_Type, 0); ! if (cf == NULL) return NULL; *************** *** 104,142 **** if (!linked) back = NULL; - Py_XINCREF(back); ! c->f_back = back; ! for (i=0; i < c->ob_size; ++i) { ! PyObject ** f_params = PyBaseFrame_GET_MEMBERS(c); ! f_params[i] = NULL; ! } ! c->f_execute = exec; ! _PyObject_GC_TRACK(c); ! return c; } ! /* pickling support for baseframes and simple derived objects */ - #define baseframetuplefmt "iSO" static PyObject * ! baseframe_reduce(PyBaseFrameObject *f) { PyObject *res = NULL, *exec_name = NULL; PyObject *params = NULL; ! int valid = 1, extra; ! if ((exec_name = slp_find_execname((PyFrameObject *) f, &valid)) == NULL) return NULL; ! extra = f->ob_size; ! params = slp_into_tuple_with_nulls(PyBaseFrame_GET_MEMBERS(f), extra); if (params == NULL) goto err_exit; ! res = Py_BuildValue ("(O(" baseframetuplefmt "))", ! f->ob_type, valid, exec_name, ! params); err_exit: --- 91,129 ---- if (!linked) back = NULL; Py_XINCREF(back); ! cf->f_execute = exec; ! cf->f_back = back; ! cf->ob1 = cf->ob2 = cf->ob3 = NULL; ! cf->i = cf->n = 0; ! _PyObject_GC_TRACK(cf); ! return cf; } ! /* pickling support for cframes */ ! ! #define cframetuplefmt "iSOll" ! #define cframetuplenewfmt "iSO!ll:cframe" static PyObject * ! cframe_reduce(PyCFrameObject *cf) { PyObject *res = NULL, *exec_name = NULL; PyObject *params = NULL; ! int valid = 1; ! if ((exec_name = slp_find_execname((PyFrameObject *) cf, &valid)) == NULL) return NULL; ! params = slp_into_tuple_with_nulls(&cf->ob1, 3); if (params == NULL) goto err_exit; ! res = Py_BuildValue ("(O()(" cframetuplefmt "))", ! cf->ob_type, valid, exec_name, ! params, ! cf->i, ! cf->n); err_exit: *************** *** 146,220 **** } ! static PyMethodDef baseframe_methods[] = { ! {"__reduce__", (PyCFunction)baseframe_reduce, METH_NOARGS, NULL}, ! {NULL, NULL} ! }; ! #define baseframetuplenewfmt "iSO!:baseframe" static PyObject * ! baseframe_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { ! PyBaseFrameObject *f; int valid; PyObject *exec_name = NULL; PyFrame_ExecFunc *good_func, *bad_func; PyObject *params; ! int extra; ! ! if (kwds != NULL) { ! PyErr_SetString(PyExc_ValueError, ! "Keyword parameters not supported" ! "for baseframe unpickling"); ! return NULL; ! } ! if (!PyArg_ParseTuple (args, baseframetuplenewfmt, &valid, &exec_name, ! &PyTuple_Type, ¶ms)) return NULL; ! if (slp_find_execfuncs(type, exec_name, &good_func, &bad_func)) return NULL; ! extra = PyTuple_GET_SIZE(params)-1; ! f = slp_baseframe_new(valid ? good_func : bad_func, 0, extra); ! /* mark as from unpickling */ Py_INCREF(Py_None); ! f->f_back = (PyFrameObject *) Py_None; ! f->ob_type = type; ! slp_from_tuple_with_nulls(PyBaseFrame_GET_MEMBERS(f), params); ! return (PyObject *) f; } static PyObject * run_cframe(PyFrameObject *f, PyObject *retval) { PyThreadState *ts = PyThreadState_GET(); ! PyCFrameObject *c = (PyCFrameObject*) f; ts->frame = f; ! if (retval == NULL) goto exit_run_cframe; - if (c->callable == NULL) { - /* we were left by a soft call */ - } - else { - Py_DECREF(retval); - STACKLESS_PROPOSE_ALL(); - retval = PyObject_Call(c->callable, c->args, c->kwds); - STACKLESS_ASSERT(); ! if (STACKLESS_UNWINDING(retval)) { ! Py_DECREF(c->callable); ! c->callable = NULL; ! return retval; } } /* pop frame */ exit_run_cframe: ! ts->frame = c->bf.f_back; ! Py_DECREF(f); return retval; } --- 133,225 ---- } ! static PyObject * ! cframe_new(PyTypeObject *type, PyObject *args, PyObject *kwds) ! { ! static char *kwlist[] = {NULL}; + if (!PyArg_ParseTupleAndKeywords(args, kwds, ":cframe", kwlist)) + return NULL; + return (PyObject *) slp_cframe_new(NULL, 0); + } ! /* note that args is a tuple, although we use METH_O */ static PyObject * ! cframe_setstate(PyObject *self, PyObject *args) { ! PyCFrameObject *cf = (PyCFrameObject *) self; int valid; PyObject *exec_name = NULL; PyFrame_ExecFunc *good_func, *bad_func; PyObject *params; ! int i, n; ! if (!PyArg_ParseTuple (args, cframetuplenewfmt, &valid, &exec_name, ! &PyTuple_Type, ¶ms, ! &i, ! &n)) return NULL; ! if (slp_find_execfuncs(cf->ob_type, exec_name, &good_func, &bad_func)) return NULL; ! if (PyTuple_GET_SIZE(params)-1 != 3) ! VALUE_ERROR("bad argument for cframe unpickling", NULL); ! ! /* mark this frame as coming from unpickling */ Py_INCREF(Py_None); ! cf->f_back = (PyFrameObject *) Py_None; ! cf->f_execute = valid ? good_func : bad_func; ! slp_from_tuple_with_nulls(&cf->ob1, params); ! cf->i = i; ! cf->n = n; ! Py_INCREF(cf); ! return (PyObject *) cf; } + static PyMethodDef cframe_methods[] = { + {"__reduce__", (PyCFunction)cframe_reduce, METH_NOARGS, NULL}, + {"__reduce_ex__", (PyCFunction)cframe_reduce, METH_VARARGS, NULL}, + {"__setstate__", (PyCFunction)cframe_setstate, METH_O, NULL}, + {NULL, NULL} + }; + + static PyObject * run_cframe(PyFrameObject *f, PyObject *retval) { PyThreadState *ts = PyThreadState_GET(); ! PyCFrameObject *cf = (PyCFrameObject*) f; ! PyTaskletObject *task = ts->st.current; ! int done = cf->i; ! ts->frame = f; ! if (retval == NULL || done) goto exit_run_cframe; ! if (cf->ob2 == NULL) ! cf->ob2 = PyTuple_New(0); ! Py_DECREF(retval); ! STACKLESS_PROPOSE_ALL(); ! retval = PyObject_Call(cf->ob1, cf->ob2, cf->ob3); ! STACKLESS_ASSERT(); ! cf->i = 1; /* mark ourself as done */ ! ! if (STACKLESS_UNWINDING(retval)) { ! /* try to shortcut */ ! if (ts->st.current == task && ts->frame != NULL && ! ts->frame->f_back == (PyFrameObject *) cf) { ! Py_DECREF(ts->frame->f_back); ! ts->frame->f_back = cf->f_back; ! Py_DECREF(cf); /* the exec reference */ } + return retval; } /* pop frame */ exit_run_cframe: ! ts->frame = cf->f_back; ! Py_DECREF(cf); return retval; } *************** *** 223,317 **** PyCFrameObject * ! slp_cframe_new(PyObject *func, PyObject *args, PyObject *kwds, unsigned int linked) { ! PyCFrameObject *c; if (func == NULL || !PyCallable_Check(func)) ! return TYPE_ERROR("cframe function must be a callable", NULL); ! c = (PyCFrameObject *)slp_baseframe_new(run_cframe, linked, 3); ! if (c == NULL) return NULL; - c->bf.ob_type = &PyCFrame_Type; - Py_INCREF(func); ! c->callable = func; Py_INCREF(args); ! c->args = args; Py_XINCREF(kwds); ! c->kwds = kwds; ! return c; } - static PyMemberDef baseframe_memberlist[] = { - {"f_back", T_OBJECT, offsetof(PyCFrameObject, bf.f_back), RO}, - {"_exec_adr", T_INT, offsetof(PyCFrameObject, bf.f_execute), RO, - "The address of the execute function of this frame.\n" - "use f._exec_map[adr] to find its pickling name."}, - {NULL} /* Sentinel */ - }; - static PyMemberDef cframe_memberlist[] = { ! {"f_back", T_OBJECT, offsetof(PyCFrameObject, bf.f_back), RO}, ! {"callable", T_OBJECT, offsetof(PyCFrameObject, callable), RO}, ! {"args", T_OBJECT, offsetof(PyCFrameObject, args), RO}, ! {"kwds", T_OBJECT, offsetof(PyCFrameObject, kwds), RO}, ! {"_exec_adr", T_INT, offsetof(PyCFrameObject, bf.f_execute), RO, ! "The address of the execute function of this frame.\n" ! "use f._exec_map[adr] to find its pickling name."}, {NULL} /* Sentinel */ }; - - PyTypeObject PyBaseFrame_Type = { - PyObject_HEAD_INIT(&PyType_Type) - 0, - "stackless.baseframe", - sizeof(PyBaseFrameObject), - sizeof(PyObject *), - (destructor)baseframe_dealloc, /* tp_dealloc */ - 0, /* tp_print */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_compare */ - 0, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - PyObject_GenericGetAttr, /* tp_getattro */ - PyObject_GenericSetAttr, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ - 0, /* tp_doc */ - (traverseproc)baseframe_traverse, /* tp_traverse */ - (inquiry) baseframe_clear, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - baseframe_methods, /* tp_methods */ - baseframe_memberlist, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - baseframe_new, /* tp_new */ - _PyObject_Del, /* tp_free */ - }; - - PyTypeObject PyCFrame_Type = { PyObject_HEAD_INIT(&PyType_Type) 0, "stackless.cframe", ! sizeof(PyBaseFrameObject), ! sizeof(PyObject *), ! (destructor)baseframe_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ --- 228,266 ---- PyCFrameObject * ! slp_cframe_newfunc(PyObject *func, PyObject *args, PyObject *kwds, unsigned int linked) { ! PyCFrameObject *cf; if (func == NULL || !PyCallable_Check(func)) ! TYPE_ERROR("cframe function must be a callable", NULL); ! cf = slp_cframe_new(run_cframe, linked); ! if (cf == NULL) return NULL; Py_INCREF(func); ! cf->ob1 = func; Py_INCREF(args); ! cf->ob2 = args; Py_XINCREF(kwds); ! cf->ob3 = kwds; ! return cf; } static PyMemberDef cframe_memberlist[] = { ! {"f_back", T_OBJECT, offsetof(PyCFrameObject, f_back), RO}, ! {"ob1", T_OBJECT, offsetof(PyCFrameObject, ob1), RO}, ! {"ob2", T_OBJECT, offsetof(PyCFrameObject, ob2), RO}, ! {"ob3", T_OBJECT, offsetof(PyCFrameObject, ob3), RO}, ! {"i", T_LONG, offsetof(PyCFrameObject, i), RO}, ! {"n", T_LONG, offsetof(PyCFrameObject, n), RO}, {NULL} /* Sentinel */ }; PyTypeObject PyCFrame_Type = { PyObject_HEAD_INIT(&PyType_Type) 0, "stackless.cframe", ! sizeof(PyCFrameObject), ! 0, ! (destructor)cframe_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ *************** *** 328,343 **** PyObject_GenericSetAttr, /* tp_setattro */ 0, /* tp_as_buffer */ ! Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ 0, /* tp_doc */ ! (traverseproc)baseframe_traverse, /* tp_traverse */ ! (inquiry) baseframe_clear, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ ! 0, /* tp_methods */ cframe_memberlist, /* tp_members */ 0, /* tp_getset */ ! &PyBaseFrame_Type, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ --- 277,292 ---- PyObject_GenericSetAttr, /* tp_setattro */ 0, /* tp_as_buffer */ ! Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ 0, /* tp_doc */ ! (traverseproc)cframe_traverse, /* tp_traverse */ ! (inquiry) cframe_clear, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ ! cframe_methods, /* tp_methods */ cframe_memberlist, /* tp_members */ 0, /* tp_getset */ ! 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ *************** *** 346,350 **** 0, /* tp_init */ 0, /* tp_alloc */ ! baseframe_new, /* tp_new */ _PyObject_Del, /* tp_free */ }; --- 295,299 ---- 0, /* tp_init */ 0, /* tp_alloc */ ! cframe_new, /* tp_new */ _PyObject_Del, /* tp_free */ }; *************** *** 353,357 **** { /* register the cframe exec func */ ! return slp_register_execute(&PyCFrame_Type, "run_frame", run_cframe, REF_INVALID_EXEC(run_cframe)); } --- 302,306 ---- { /* register the cframe exec func */ ! return slp_register_execute(&PyCFrame_Type, "run_cframe", run_cframe, REF_INVALID_EXEC(run_cframe)); } Index: slp_transfer.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/slp_transfer.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** slp_transfer.c 29 Apr 2004 18:13:42 -0000 1.21 --- slp_transfer.c 24 May 2004 01:01:20 -0000 1.22 *************** *** 35,44 **** stsizeb = (_cst->startaddr - stackref) * sizeof(int*); \ if (_cst == NULL) return 0; \ ! stsizediff = stsizeb - (_cst->ob_size * sizeof(int*)); #define SLP_RESTORE_STATE() \ if (_cst != NULL) { \ slp_cstack_restore(_cst); \ - _cst->tstate->st.nesting_level = _cst->nesting_level; \ } --- 35,43 ---- stsizeb = (_cst->startaddr - stackref) * sizeof(int*); \ if (_cst == NULL) return 0; \ ! stsizediff = stsizeb - (_cst->ob_size * sizeof(int*)); #define SLP_RESTORE_STATE() \ if (_cst != NULL) { \ slp_cstack_restore(_cst); \ } *************** *** 82,86 **** if ((int*) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); ! if (cst == NULL) cst = ts->st.initial_stub; if (cst != NULL) { --- 81,85 ---- if ((int*) &ts > ts->st.cstack_base) return climb_stack_and_transfer(cstprev, cst, prev); ! if (cst == NULL || cst->ob_size == 0) cst = ts->st.initial_stub; if (cst != NULL) { Index: stackless_impl.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_impl.h,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -d -r1.87 -r1.88 *** stackless_impl.h 13 May 2004 02:00:26 -0000 1.87 --- stackless_impl.h 24 May 2004 01:01:20 -0000 1.88 *************** *** 34,51 **** /******************************************************************** * - * This section defines/references stuff from cframeobject.c - * - ********************************************************************/ - - PyAPI_DATA(PyTypeObject) PyCFrame_Type; - PyAPI_DATA(PyTypeObject) PyBaseFrame_Type; - - #define PyBaseFrame_Check(op) PyObject_TypeCheck(op, &PyBaseFrame_Type) - #define PyBaseFrame_CheckExact(op) ((op)->ob_type == &PyBaseFrame_Type) - #define PyCFrame_Check(op) PyObject_TypeCheck(op, &PyCFrame_Type) - #define PyCFrame_CheckExact(op) ((op)->ob_type == &PyCFrame_Type) - - /******************************************************************** - * * This section defines/references stuff from stacklesseval.c * --- 34,37 ---- *************** *** 56,59 **** --- 42,46 ---- PyAPI_DATA(int) slp_enable_softswitch; PyAPI_DATA(int) slp_try_stackless; + PyAPI_DATA(PyCStackObject *) slp_cstack_chain; PyAPI_FUNC(PyCStackObject *) slp_cstack_new(PyCStackObject **cst, *************** *** 80,84 **** PyAPI_FUNC(void) PyStacklessEval_Fini(void); ! PyAPI_FUNC(void) PyStackless_kill_tasks_with_stacks(void); /* the special version of eval_frame */ --- 67,71 ---- PyAPI_FUNC(void) PyStacklessEval_Fini(void); ! PyAPI_FUNC(void) PyStackless_kill_tasks_with_stacks(int allthreads); /* the special version of eval_frame */ *************** *** 91,96 **** /* the frame dispatcher for toplevel tasklets */ ! PyAPI_FUNC(PyObject *) slp_frame_dispatch_top(PyFrameObject *f, ! PyObject *retval); /* the now exported eval_frame */ --- 78,82 ---- /* the frame dispatcher for toplevel tasklets */ ! PyAPI_FUNC(PyObject *) slp_frame_dispatch_top(PyObject *retval); /* the now exported eval_frame */ *************** *** 98,101 **** --- 84,90 ---- PyObject *retval); + /* eval_frame with stack overflow, triggered there with a macro */ + PyAPI_FUNC(PyObject *) slp_eval_frame_newstack(f, retval); + /* the new eval_frame loop with or without value or resuming an iterator */ PyAPI_FUNC(PyObject *) PyEval_EvalFrame_value(struct _frame *f, *************** *** 331,340 **** PyAPI_FUNC(void) slp_channel_insert(PyChannelObject *channel, PyTaskletObject *task, int dir); ! PyAPI_FUNC(PyTaskletObject) * slp_channel_remove(PyChannelObject *channel, int dir); ! PyAPI_FUNC(PyTaskletObject) * slp_channel_remove_specific( PyChannelObject *channel, int dir, PyTaskletObject *task); ! PyAPI_FUNC(PyTaskletObject) * slp_channel_remove_slow(PyTaskletObject *task); /* tasklet/scheduling operations */ --- 320,337 ---- PyAPI_FUNC(void) slp_channel_insert(PyChannelObject *channel, PyTaskletObject *task, int dir); ! PyAPI_FUNC(PyTaskletObject *) slp_channel_remove(PyChannelObject *channel, int dir); ! PyAPI_FUNC(PyTaskletObject *) slp_channel_remove_specific( PyChannelObject *channel, int dir, PyTaskletObject *task); ! PyAPI_FUNC(PyTaskletObject *) slp_channel_remove_slow(PyTaskletObject *task); ! ! /* recording the main thread state */ ! ! PyAPI_DATA(PyThreadState *) slp_initial_tstate; ! ! /* protecting soft-switched tasklets in other threads */ ! ! PyAPI_FUNC(int) slp_ensure_linkage(PyTaskletObject *task); /* tasklet/scheduling operations */ *************** *** 387,393 **** /* tasklet startup */ ! PyAPI_FUNC(PyObject *) slp_run_tasklet(PyFrameObject *f); ! PyAPI_FUNC(PyObject *) slp_resume_tasklet(PyFrameObject *f); ! PyAPI_FUNC(int) initialize_main_and_current(PyFrameObject *f); /* handy abbrevations */ --- 384,388 ---- /* tasklet startup */ ! PyAPI_FUNC(PyObject *) slp_run_tasklet(void); /* handy abbrevations */ *************** *** 409,423 **** #endif ! #define TYPE_ERROR(str, ret) (slp_type_error(str), ret) ! #define RUNTIME_ERROR(str, ret) (slp_runtime_error(str), ret) ! #define VALUE_ERROR(str, ret) (slp_value_error(str), ret) ! PyAPI_FUNC(PyBaseFrameObject *) slp_baseframe_new(PyFrame_ExecFunc *exec, ! unsigned int linked, ! unsigned int extra); ! PyAPI_FUNC(PyCFrameObject *) slp_cframe_new(PyObject *func, ! PyObject *args, ! PyObject *kwds, unsigned int linked); PyAPI_FUNC(PyFrameObject *) slp_get_frame(PyTaskletObject *task); --- 404,417 ---- #endif ! #define TYPE_ERROR(str, ret) return (slp_type_error(str), ret) ! #define RUNTIME_ERROR(str, ret) return (slp_runtime_error(str), ret) ! #define VALUE_ERROR(str, ret) return (slp_value_error(str), ret) ! PyAPI_FUNC(PyCFrameObject *) slp_cframe_new(PyFrame_ExecFunc *exec, unsigned int linked); + PyAPI_FUNC(PyCFrameObject *) slp_cframe_newfunc(PyObject *func, + PyObject *args, + PyObject *kwds, + unsigned int linked); PyAPI_FUNC(PyFrameObject *) slp_get_frame(PyTaskletObject *task); *************** *** 429,433 **** PyAPI_FUNC(int) slp_resurrect_and_kill(PyObject *self, void(*killer)(PyObject *)); - PyAPI_FUNC(int) slp_revive_main(void); /* stackless pickling support */ --- 423,426 ---- Index: stackless_structs.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_structs.h,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** stackless_structs.h 12 May 2004 15:33:56 -0000 1.62 --- stackless_structs.h 24 May 2004 01:01:20 -0000 1.63 *************** *** 76,83 **** struct _cframe *cframe; } f; - /* - PyObject *channel; - */ - PyFrameObject *topframe; PyObject *tempval; /* bits stuff */ --- 76,79 ---- *************** *** 159,165 **** ! /*** important stuctures: baseframe, cframe ***/ ! typedef struct _baseframe { PyObject_VAR_HEAD struct _frame *f_back; /* previous frame, or NULL */ --- 155,161 ---- ! /*** important stuctures: cframe ***/ ! typedef struct _cframe { PyObject_VAR_HEAD struct _frame *f_back; /* previous frame, or NULL */ *************** *** 172,185 **** */ ! } PyBaseFrameObject; ! ! ! /* "derived" cframe */ ! typedef struct _cframe { ! PyBaseFrameObject bf; ! PyObject *callable; ! PyObject *args; ! PyObject *kwds; } PyCFrameObject; --- 168,177 ---- */ ! /* these can be used as the CFrame likes to */ ! PyObject *ob1; ! PyObject *ob2; ! PyObject *ob3; ! long i, n; } PyCFrameObject; *************** *** 198,204 **** /*** associated type objects ***/ - PyAPI_DATA(PyTypeObject) PyBaseFrame_Type; PyAPI_DATA(PyTypeObject) PyCFrame_Type; PyAPI_DATA(PyTypeObject) PyCStack_Type; PyAPI_DATA(PyTypeObject) PyBomb_Type; --- 190,198 ---- /*** associated type objects ***/ PyAPI_DATA(PyTypeObject) PyCFrame_Type; + #define PyCFrame_Check(op) ((op)->ob_type == &PyCFrame_Type) + PyAPI_DATA(PyTypeObject) PyCStack_Type; + #define PyCStack_Check(op) ((op)->ob_type == &PyCStack_Type) PyAPI_DATA(PyTypeObject) PyBomb_Type; Index: stackless_tstate.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_tstate.h,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** stackless_tstate.h 12 May 2004 15:33:56 -0000 1.50 --- stackless_tstate.h 24 May 2004 01:01:20 -0000 1.51 *************** *** 12,19 **** long serial_last_jump; #endif ! /* the list of all stacks of this thread */ ! struct _cstack *cstack_chain; ! /* the base address for hijacking stacks */ int *cstack_base; /* main tasklet */ struct _tasklet *main; --- 12,19 ---- long serial_last_jump; #endif ! /* the base address for hijacking stacks. XXX deprecating */ int *cstack_base; + /* stack overflow check and init flag */ + int *cstack_root; /* main tasklet */ struct _tasklet *main; *************** *** 28,48 **** /* trap recursive scheduling via callbacks */ int schedlock; ! /* number of nested interpreters (1.0/2.0 merge) */ int nesting_level; - /* common return frame for all tasklets (3.0) */ - /* XXX this is about to be removed, since we always - have cframes on top now */ - struct _frame *tasklet_runner; } PyStacklessState; /* these macros go into pystate.c */ ! #define STACKLESS_PYSTATE_NEW \ tstate->st.initial_stub = NULL; \ tstate->st.serial = 0; \ tstate->st.serial_last_jump = 0; \ - tstate->st.cstack_chain = NULL; \ tstate->st.cstack_base = NULL; \ tstate->st.ticker = 0; \ tstate->st.interval = 0; \ --- 28,50 ---- /* trap recursive scheduling via callbacks */ int schedlock; ! #ifdef WITH_THREAD ! struct { ! PyObject *self_lock; ! PyObject *unlock_lock; ! int is_locked; ! } thread; ! #endif /* number of nested interpreters (1.0/2.0 merge) */ int nesting_level; } PyStacklessState; /* these macros go into pystate.c */ ! #define __STACKLESS_PYSTATE_NEW \ tstate->st.initial_stub = NULL; \ tstate->st.serial = 0; \ tstate->st.serial_last_jump = 0; \ tstate->st.cstack_base = NULL; \ + tstate->st.cstack_root = NULL; \ tstate->st.ticker = 0; \ tstate->st.interval = 0; \ *************** *** 52,57 **** tstate->st.current = NULL; \ tstate->st.runcount = 0; \ ! tstate->st.nesting_level = 0; \ ! tstate->st.tasklet_runner = NULL; /* note that the scheduler knows how to zap. It checks if it is in charge --- 54,58 ---- tstate->st.current = NULL; \ tstate->st.runcount = 0; \ ! tstate->st.nesting_level = 0; /* note that the scheduler knows how to zap. It checks if it is in charge *************** *** 64,69 **** void slp_kill_tasks_with_stacks(struct _ts *tstate); ! #define STACKLESS_PYSTATE_ZAP \ slp_kill_tasks_with_stacks(tstate); \ ! ZAP(tstate->st.initial_stub); \ ! ZAP(tstate->st.tasklet_runner); --- 65,93 ---- void slp_kill_tasks_with_stacks(struct _ts *tstate); ! #define __STACKLESS_PYSTATE_ZAP \ slp_kill_tasks_with_stacks(tstate); \ ! ZAP(tstate->st.initial_stub); ! ! #ifdef WITH_THREAD ! ! #define STACKLESS_PYSTATE_NEW \ ! __STACKLESS_PYSTATE_NEW \ ! tstate->st.thread.self_lock = NULL; \ ! tstate->st.thread.unlock_lock = NULL; \ ! tstate->st.thread.is_locked = 0; ! ! ! #define STACKLESS_PYSTATE_ZAP \ ! __STACKLESS_PYSTATE_ZAP \ ! ZAP(tstate->st.thread.self_lock); \ ! ZAP(tstate->st.thread.unlock_lock); ! ! #else ! ! #define STACKLESS_PYSTATE_NEW __STACKLESS_PYSTATE_NEW ! #define STACKLESS_PYSTATE_ZAP __STACKLESS_PYSTATE_ZAP ! ! #undef __STACKLESS_PYSTATE_NEW ! #undef __STACKLESS_PYSTATE_ZAP ! ! #endif Index: stackless_util.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stackless_util.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** stackless_util.c 12 May 2004 15:33:56 -0000 1.18 --- stackless_util.c 24 May 2004 01:01:20 -0000 1.19 *************** *** 41,49 **** slp_get_frame(PyTaskletObject *task) { ! PyThreadState *ts; - if (task->topframe == NULL || task->cstate == NULL) - return NULL; - ts = task->cstate->tstate; return ts->st.current == task ? ts->frame : task->f.frame; } --- 41,46 ---- slp_get_frame(PyTaskletObject *task) { ! PyThreadState *ts = PyThreadState_GET(); return ts->st.current == task ? ts->frame : task->f.frame; } Index: stacklesseval.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stacklesseval.c,v retrieving revision 1.147 retrieving revision 1.148 diff -C2 -d -r1.147 -r1.148 *** stacklesseval.c 12 May 2004 15:33:56 -0000 1.147 --- stacklesseval.c 24 May 2004 01:01:20 -0000 1.148 *************** *** 33,36 **** --- 33,40 ---- int slp_try_stackless = 0; + /* the list of all stacks of all threads */ + struct _cstack *slp_cstack_chain = NULL; + + /****************************************************** *************** *** 39,48 **** ******************************************************/ - /* adjust slots to typical size for your system */ - - #define CSTACK_SLOTS 1024 - #define CSTACK_MAXCACHE 100 - #define CSTACK_GOODGAP 4096 - static PyCStackObject *cstack_cache[CSTACK_SLOTS] = { NULL }; static int cstack_cachecount = 0; --- 43,46 ---- *************** *** 69,74 **** PyThreadState *ts = PyThreadState_GET(); ! ts->st.cstack_chain = cst; ! SLP_CHAIN_REMOVE(PyCStackObject, &ts->st.cstack_chain, cst, next, prev); if (cst->ob_size >= CSTACK_SLOTS) { --- 67,72 ---- PyThreadState *ts = PyThreadState_GET(); ! slp_cstack_chain = cst; ! SLP_CHAIN_REMOVE(PyCStackObject, &slp_cstack_chain, cst, next, prev); if (cst->ob_size >= CSTACK_SLOTS) { *************** *** 92,99 **** int size = stackbase - stackref; ! if (size < 0) { ! PyErr_SetString(PyExc_RuntimeError, "negative stack size"); ! return NULL; ! } if (*cst && (*cst)->ob_size == size && (*cst)->ob_refcnt == 1) { /* reuse it */ --- 90,95 ---- int size = stackbase - stackref; ! if (size < 0) ! RUNTIME_ERROR("negative stack size", NULL); if (*cst && (*cst)->ob_size == size && (*cst)->ob_refcnt == 1) { /* reuse it */ *************** *** 123,127 **** (*cst)->startaddr = stackbase; (*cst)->next = (*cst)->prev = NULL; ! SLP_CHAIN_INSERT(PyCStackObject, &ts->st.cstack_chain, *cst, next, prev); (*cst)->serial = ts->st.serial; (*cst)->task = task; --- 119,123 ---- (*cst)->startaddr = stackbase; (*cst)->next = (*cst)->prev = NULL; ! SLP_CHAIN_INSERT(PyCStackObject, &slp_cstack_chain, *cst, next, prev); (*cst)->serial = ts->st.serial; (*cst)->task = task; *************** *** 144,147 **** --- 140,144 ---- slp_cstack_restore(PyCStackObject *cst) { + cst->tstate->st.nesting_level = cst->nesting_level; /* mark task as no longer responsible for cstack instance */ cst->task = NULL; *************** *** 215,228 **** 0, /* tp_methods */ cstack_members, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - 0, /* tp_new */ - 0, /* tp_free */ }; --- 212,215 ---- *************** *** 237,241 **** ts->st.initial_stub = NULL; } ! ++ts->st.serial; if (slp_transfer(&ts->st.initial_stub, NULL, NULL)) return -1; ts->st.initial_stub->serial = ts->st.serial; --- 224,228 ---- ts->st.initial_stub = NULL; } ! ts->st.serial_last_jump = ++ts->st.serial; if (slp_transfer(&ts->st.initial_stub, NULL, NULL)) return -1; ts->st.initial_stub->serial = ts->st.serial; *************** *** 246,249 **** --- 233,237 ---- * To insure that, it was necessary to re-create the * initial stub for *every* run of a new main. + * This will vanish with greenlet-like stack management. */ *************** *** 291,317 **** * Reason: (observed with wxPython): * A toplevel frame is run as a tasklet. When its frame ! * is deallocated (in slp_tasklet_end), a Python object * with a __del__ method is destroyed. This __del__ ! * will run as a toplevel frame, with fback == NULL! */ stackref = STACK_REFPLUS + (int*) &f; ! if (ts->st.cstack_base == NULL) ! ts->st.cstack_base = stackref-CSTACK_GOODGAP; ! if (stackref > ts->st.cstack_base) ! return climb_stack_and_eval_frame(f); ts->frame = f; if (make_initial_stub()) return NULL; ! f = ts->frame; ! if (f == NULL) ! return NULL; ! if (f->f_back == NULL || f->f_back == ts->st.tasklet_runner) { ! /* this is really a new tasklet or main */ ! /* I hope very much to get rid of this hack, soon */ ! return slp_run_tasklet(f); ! } ! return slp_resume_tasklet(f); } Py_INCREF(Py_None); --- 279,297 ---- * Reason: (observed with wxPython): * A toplevel frame is run as a tasklet. When its frame ! * is deallocated (in tasklet_end), a Python object * with a __del__ method is destroyed. This __del__ ! * will run as a toplevel frame, with f_back == NULL! */ stackref = STACK_REFPLUS + (int*) &f; ! if (ts->st.cstack_base == NULL) ! ts->st.cstack_base = stackref-CSTACK_GOODGAP; ! if (stackref > ts->st.cstack_base) ! return climb_stack_and_eval_frame(f); ts->frame = f; if (make_initial_stub()) return NULL; ! return slp_run_tasklet(); } Py_INCREF(Py_None); *************** *** 319,357 **** } ! void slp_kill_tasks_with_stacks(struct _ts *tstate) { - PyThreadState *ts = PyThreadState_GET(); - PyObject *exception, *value, *tb; int count = 0; - if (ts != tstate) { - /* too bad, can't handle this, give up */ - return; - } - PyErr_Fetch(&exception, &value, &tb); while (1) { ! PyCStackObject *csfirst = ts->st.cstack_chain, *cs = csfirst; PyTaskletObject *t; ! if (cs == NULL) break; ! while (cs->task == NULL && cs->next != csfirst) { ! cs = cs->next; ! ++count; /* for debugging */ ! } count = 0; - if (cs->task == NULL) - return; t = cs->task; ! cs->task = NULL; PyTasklet_Kill(t); PyErr_Clear(); } - PyErr_Restore(exception, value, tb); } ! void PyStackless_kill_tasks_with_stacks(void) { ! slp_kill_tasks_with_stacks(PyThreadState_GET()); } --- 299,345 ---- } ! void slp_kill_tasks_with_stacks(PyThreadState *ts) { int count = 0; while (1) { ! PyCStackObject *csfirst = slp_cstack_chain, *cs; PyTaskletObject *t; ! if (csfirst == NULL) break; ! for (cs = csfirst; ; cs = cs->next) { ! if (count && cs == csfirst) { ! /* nothing found */ ! return; ! } ! ++count; ! if (cs->task == NULL) ! continue; ! if (ts != NULL && cs->tstate != ts) ! continue; ! break; ! } count = 0; t = cs->task; ! Py_INCREF(t); ! PyTasklet_Kill(t); PyErr_Clear(); + + if (t->f.frame == 0) { + /* ensure a valid tstate */ + t->cstate->tstate = slp_initial_tstate; + } + Py_DECREF(t); } } ! void PyStackless_kill_tasks_with_stacks(int allthreads) { ! PyThreadState *ts = PyThreadState_Get(); ! PyInterpreterState *interp = ts->interp; ! ! slp_kill_tasks_with_stacks(allthreads ? NULL : ts); } *************** *** 363,366 **** --- 351,408 ---- + /* cstack spilling for recursive calls */ + + static PyObject * + eval_frame_callback(PyFrameObject *f, PyObject *retval) + { + PyThreadState *ts = PyThreadState_GET(); + PyTaskletObject *cur = ts->st.current; + PyCStackObject *cst = cur->cstate; + + ts->frame = f->f_back; + Py_DECREF(f); + retval = PyEval_EvalFrame(ts->frame, retval); + TASKLET_SETVAL_OWN(cur, retval); + /* jump back */ + slp_transfer_return(cst); + /* never come here */ + return NULL; + } + + PyObject * + slp_eval_frame_newstack(PyFrameObject *f, PyObject *retval) + { + PyThreadState *ts = PyThreadState_GET(); + PyTaskletObject *cur = ts->st.current; + PyCFrameObject *cf = NULL; + PyCStackObject *cst; + + if (ts->st.cstack_root == NULL) { + /* this is a toplevel call */ + ts->st.cstack_root = STACK_REFPLUS + (int*) &f; + retval = PyEval_EvalFrame(f, retval); + return retval; + } + + ts->frame = f; + cf = slp_cframe_new(eval_frame_callback, 1); + if (cf == NULL) + return NULL; + ts->frame = (PyFrameObject *) cf; + cst = cur->cstate; + cur->cstate = NULL; + Py_XDECREF(retval); + if (slp_transfer(&cur->cstate, NULL, cur)) + goto finally; /* fatal */ + Py_XDECREF(cur->cstate); + retval = cur->tempval; + Py_INCREF(retval); + if (PyBomb_Check(retval)) + retval = slp_bomb_explode(cur); + finally: + cur->cstate = cst; + return retval; + } + /****************************************************** *************** *** 390,400 **** */ - typedef struct _gen_callback_frame { - PyBaseFrameObject bf; - genobject *gen; - } gen_callback_frame; - #define GEN_CALLBACK_FRAME_SIZE ((sizeof(gen_callback_frame) - \ - sizeof(PyBaseFrameObject))/sizeof(PyObject*)) - static PyObject* gen_iternext_callback(PyFrameObject *f, PyObject *retval); --- 432,435 ---- *************** *** 419,424 **** if (f->f_back == NULL && (f->f_back = (PyFrameObject *) ! slp_baseframe_new(gen_iternext_callback, 0, ! GEN_CALLBACK_FRAME_SIZE)) == NULL) return NULL; /* Generators always return to their most recent caller, not --- 454,458 ---- if (f->f_back == NULL && (f->f_back = (PyFrameObject *) ! slp_cframe_new(gen_iternext_callback, 0)) == NULL) return NULL; /* Generators always return to their most recent caller, not *************** *** 439,443 **** Py_INCREF(gen); ! ((gen_callback_frame *) f->f_back)->gen = gen; Py_INCREF(f); ts->frame = f; --- 473,477 ---- Py_INCREF(gen); ! ((PyCFrameObject *) f->f_back)->ob1 = (PyObject *) gen; Py_INCREF(f); ts->frame = f; *************** *** 451,456 **** { PyThreadState *ts = PyThreadState_GET(); ! gen_callback_frame *gcf = (gen_callback_frame*) f; ! genobject *gen = gcf->gen; gen->gi_running = 0; --- 485,490 ---- { PyThreadState *ts = PyThreadState_GET(); ! PyCFrameObject *cf = (PyCFrameObject *) f; ! genobject *gen = (genobject *) cf->ob1; gen->gi_running = 0; *************** *** 478,482 **** } } ! gcf->gen = NULL; Py_DECREF(gen); return retval; --- 512,516 ---- } } ! cf->ob1 = NULL; Py_DECREF(gen); return retval; *************** *** 571,579 **** PyObject * ! slp_frame_dispatch_top(PyFrameObject *f, PyObject *retval) { PyThreadState *ts = PyThreadState_GET(); ! if (f==NULL) return NULL; while (1) { --- 605,614 ---- PyObject * ! slp_frame_dispatch_top(PyObject *retval) { PyThreadState *ts = PyThreadState_GET(); + PyFrameObject *f = ts->frame; ! if (f==NULL) return retval; while (1) { *************** *** 586,590 **** break; } ! return retval; } --- 621,625 ---- break; } ! return retval; } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:27 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:27 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Modules _bisectmodule.c, 1.1, NONE _bsddb.c, 1.1, NONE _csv.c, 1.1, NONE _heapqmodule.c, 1.1, NONE _randommodule.c, 1.1, NONE _ssl.c, 1.1, NONE bz2module.c, 1.1, NONE collectionsmodule.c, 1.1, NONE datetimemodule.c, 1.1, NONE gc_weakref.txt, 1.1, NONE itertoolsmodule.c, 1.1, NONE ossaudiodev.c, 1.1, NONE socketmodule.h, 1.1, NONE zipimport.c, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Modules In directory centera.de:/home/tismer/slpdev/src/2.2/src/Modules Removed Files: _bisectmodule.c _bsddb.c _csv.c _heapqmodule.c _randommodule.c _ssl.c bz2module.c collectionsmodule.c datetimemodule.c gc_weakref.txt itertoolsmodule.c ossaudiodev.c socketmodule.h zipimport.c Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- _bisectmodule.c DELETED --- --- _bsddb.c DELETED --- --- _csv.c DELETED --- --- _heapqmodule.c DELETED --- --- _randommodule.c DELETED --- --- _ssl.c DELETED --- --- bz2module.c DELETED --- --- collectionsmodule.c DELETED --- --- datetimemodule.c DELETED --- --- gc_weakref.txt DELETED --- --- itertoolsmodule.c DELETED --- --- ossaudiodev.c DELETED --- --- socketmodule.h DELETED --- --- zipimport.c DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 17:40:04 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 17:40:04 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Python ceval.c, 1.68, 1.69 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Python In directory centera.de:/tmp/cvs-serv30859/src/2.2/src/Python Modified Files: ceval.c Log Message: small cleanup of comments that slipped in from 2.3 Index: ceval.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/ceval.c,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -d -r1.68 -r1.69 *** ceval.c 3 May 2004 16:54:29 -0000 1.68 --- ceval.c 4 May 2004 15:40:02 -0000 1.69 *************** *** 271,274 **** --- 271,275 ---- }; + #ifdef WITH_THREAD *************** *** 720,733 **** PyThreadState *tstate = PyThreadState_GET(); PyCodeObject *co; - - /* when tracing we set things up so that - - not (instr_lb <= current_bytecode_offset < instr_ub) - - is true when the line being executed has changed. The - initial values are such as to make this false the first - time it is tested. */ - int instr_ub = -1, instr_lb = 0; - unsigned char *first_instr; #ifdef LLTRACE --- 721,724 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:47 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:47 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/bsddb - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/bsddb In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/bsddb Log Message: Directory /home/cvs/slpdev/src/2.2/src/Lib/bsddb added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:32 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:32 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Python dynload_atheos.c, 1.1, NONE thread_atheos.h, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Python In directory centera.de:/home/tismer/slpdev/src/2.2/src/Python Removed Files: dynload_atheos.c thread_atheos.h Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- dynload_atheos.c DELETED --- --- thread_atheos.h DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:22 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:22 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/IDE scripts Hold option to open a script..., 1.2, 1.3 Insert file name..., 1.2, 1.3 Insert folder name..., 1.2, 1.3 Search Python Documentation..., 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/IDE scripts In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/IDE scripts Added Files: Hold option to open a script... Insert file name... Insert folder name... Search Python Documentation... Log Message: added files _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 21:53:48 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 21:53:48 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src Makefile.pre.in, 1.23, 1.24 Message-ID: Update of /home/cvs/slpdev/src/2.2/src In directory centera.de:/home/tismer/slpdev/src/2.2/src Modified Files: Makefile.pre.in Log Message: glitch, added path to slp_transfer Index: Makefile.pre.in =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Makefile.pre.in,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Makefile.pre.in 4 May 2004 16:37:31 -0000 1.23 --- Makefile.pre.in 4 May 2004 19:53:45 -0000 1.24 *************** *** 464,468 **** $(srcdir)/Objects/unicodetype_db.h ! Stackless/slp_transfer.o: $(srcdir)/Stackless/core/slp_transfer.c $(CC) -c $(PY_CFLAGS) $(SLPFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Stackless/core/slp_transfer.c --- 464,468 ---- $(srcdir)/Objects/unicodetype_db.h ! Stackless/core/slp_transfer.o: $(srcdir)/Stackless/core/slp_transfer.c $(CC) -c $(PY_CFLAGS) $(SLPFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Stackless/core/slp_transfer.c _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:28 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:28 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/Doc setup.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/Doc In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/Doc Added Files: setup.py Log Message: added files --- NEW FILE: setup.py --- # Build and install an Apple Help Viewer compatible version of the Python # documentation into the framework. # Code by Bill Fancher, with some modifications by Jack Jansen. # # You must run this as a two-step process # 1. python setupDocs.py build # 2. Wait for Apple Help Indexing Tool to finish # 3. python setupDocs.py install # # To do: # - test whether the docs are available locally before downloading # - fix buildDocsFromSource # - Get documentation version from sys.version, fallback to 2.2.1 # - See if we can somehow detect that Apple Help Indexing Tool is finished # - data_files to setup() doesn't seem the right way to pass the arguments # import sys, os, re from distutils.cmd import Command from distutils.command.build import build from distutils.core import setup from distutils.file_util import copy_file from distutils.dir_util import copy_tree from distutils.log import log from distutils.spawn import spawn from distutils import sysconfig, dep_util from distutils.util import change_root import HelpIndexingTool import Carbon.File import time class DocBuild(build): def initialize_options(self): build.initialize_options(self) self.build_html = None self.build_dest = None self.download = 0 self.doc_version = '2.3b1' # Only needed if download is true def finalize_options(self): build.finalize_options(self) if self.build_html is None: self.build_html = os.path.join(self.build_base, 'html') if self.build_dest is None: self.build_dest = os.path.join(self.build_base, 'PythonDocumentation') def spawn(self, *args): spawn(args, 1, self.verbose, self.dry_run) def downloadDocs(self): workdir = os.getcwd() url = 'http://www.python.org/ftp/python/doc/%s/html-%s.tgz' % \ (self.doc_version,self.doc_version) os.chdir(self.build_base) self.spawn('curl','-O', url) os.chdir(workdir) tarfile = 'html-%s.tgz' % self.doc_version ## This no longer works due to name changes ## self.mkpath(self.build_html) ## os.chdir(self.build_html) ## self.spawn('tar', '-xzf', '../' + tarfile) ## os.chdir(workdir) print "** Please unpack %s" % os.path.join(self.build_base, tarfile) print "** Unpack the files into %s" % self.build_html raise RuntimeError, "You need to unpack the docs manually" def buildDocsFromSource(self): srcdir = '../../..' docdir = os.path.join(srcdir, 'Doc') htmldir = os.path.join(docdir, 'html') spawn(('make','--directory', docdir, 'html'), 1, self.verbose, self.dry_run) self.mkpath(self.build_html) copy_tree(htmldir, self.build_html) def ensureHtml(self): if not os.path.exists(self.build_html): if self.download: self.downloadDocs() else: self.buildDocsFromSource() def hackIndex(self): ind_html = 'index.html' #print 'self.build_dest =', self.build_dest hackedIndex = file(os.path.join(self.build_dest, ind_html),'w') origIndex = file(os.path.join(self.build_html,ind_html)) r = re.compile('', re.DOTALL) hackedIndex.write(r.sub('',origIndex.read())) def hackFile(self,d,f): origPath = os.path.join(d,f) assert(origPath[:len(self.build_html)] == self.build_html) outPath = os.path.join(self.build_dest, d[len(self.build_html)+1:], f) (name, ext) = os.path.splitext(f) if os.path.isdir(origPath): self.mkpath(outPath) elif ext == '.html': if self.verbose: print 'hacking %s to %s' % (origPath,outPath) hackedFile = file(outPath, 'w') origFile = file(origPath,'r') hackedFile.write(self.r.sub('
', origFile.read())) else: copy_file(origPath, outPath) def hackHtml(self): self.r = re.compile('
') os.path.walk(self.build_html, self.visit, None) def visit(self, dummy, dirname, filenames): for f in filenames: self.hackFile(dirname, f) def makeHelpIndex(self): app = '/Developer/Applications/Apple Help Indexing Tool.app' self.spawn('open', '-a', app , self.build_dest) print "Please wait until Apple Help Indexing Tool finishes before installing" def makeHelpIndex(self): app = HelpIndexingTool.HelpIndexingTool(start=1) app.open(Carbon.File.FSSpec(self.build_dest)) sys.stderr.write("Waiting for Help Indexing Tool to start...") while 1: # This is bad design in the suite generation code! idle = app._get(HelpIndexingTool.Help_Indexing_Tool_Suite._Prop_idleStatus()) time.sleep(10) if not idle: break sys.stderr.write(".") sys.stderr.write("\n") sys.stderr.write("Waiting for Help Indexing Tool to finish...") while 1: # This is bad design in the suite generation code! idle = app._get(HelpIndexingTool.Help_Indexing_Tool_Suite._Prop_idleStatus()) time.sleep(10) if idle: break sys.stderr.write(".") sys.stderr.write("\n") def run(self): self.ensure_finalized() self.mkpath(self.build_base) self.ensureHtml() if not os.path.isdir(self.build_html): raise RuntimeError, \ "Can't find source folder for documentation." self.mkpath(self.build_dest) if dep_util.newer(os.path.join(self.build_html,'index.html'), os.path.join(self.build_dest,'index.html')): self.mkpath(self.build_dest) self.hackHtml() self.hackIndex() self.makeHelpIndex() class AHVDocInstall(Command): description = "install Apple Help Viewer html files" user_options = [('install-doc=', 'd', 'directory to install HTML tree'), ('root=', None, "install everything relative to this alternate root directory"), ] def initialize_options(self): self.build_dest = None self.install_doc = None self.prefix = None self.root = None def finalize_options(self): self.set_undefined_options('install', ('prefix', 'prefix'), ('root', 'root')) # import pdb ; pdb.set_trace() build_cmd = self.get_finalized_command('build') if self.build_dest == None: build_cmd = self.get_finalized_command('build') self.build_dest = build_cmd.build_dest if self.install_doc == None: self.install_doc = os.path.join(self.prefix, 'Resources/Python.app/Contents/Resources/English.lproj/PythonDocumentation') print 'INSTALL', self.build_dest, '->', self.install_doc def run(self): self.finalize_options() self.ensure_finalized() print "Running Installer" instloc = self.install_doc if self.root: instloc = change_root(self.root, instloc) self.mkpath(instloc) copy_tree(self.build_dest, instloc) print "Installation complete" def mungeVersion(infile, outfile): i = file(infile,'r') o = file(outfile,'w') o.write(re.sub('\$\(VERSION\)',sysconfig.get_config_var('VERSION'),i.read())) i.close() o.close() def main(): # turn off warnings when deprecated modules are imported ## import warnings ## warnings.filterwarnings("ignore",category=DeprecationWarning) setup(name = 'Documentation', version = '%d.%d' % sys.version_info[:2], cmdclass = {'install_data':AHVDocInstall, 'build':DocBuild}, data_files = ['dummy'], ) if __name__ == '__main__': main() _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:54 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:54 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Modules/osa - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Modules/osa In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Modules/osa Log Message: Directory /home/cvs/slpdev/src/2.2/src/Mac/Modules/osa added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:50:55 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:50:55 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Doc/commontex .cvsignore, 1.1, NONE boilerplate.tex, 1.1, NONE copyright.tex, 1.1, NONE license.tex, 1.1, NONE reportingbugs.tex, 1.1, NONE typestruct.h, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Doc/commontex In directory centera.de:/home/tismer/slpdev/src/2.2/src/Doc/commontex Removed Files: .cvsignore boilerplate.tex copyright.tex license.tex reportingbugs.tex typestruct.h Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- .cvsignore DELETED --- --- boilerplate.tex DELETED --- --- copyright.tex DELETED --- --- license.tex DELETED --- --- reportingbugs.tex DELETED --- --- typestruct.h DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From bob at centera.de Fri May 7 12:07:04 2004 From: bob at centera.de (Bob Ippolito) Date: Fri, 07 May 2004 12:07:04 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev configure, 1.13, 1.14 configure.in, 1.7, 1.8 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev In directory centera.de:/tmp/cvs-serv13896 Modified Files: configure configure.in Log Message: configure changes, make building-outside-source-tree work again, add -fconstant-cfstrings flag to OS X 10.3+ so that the toolbox compiles with Xcode 1.2 Index: configure =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/configure,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** configure 4 May 2004 19:41:36 -0000 1.13 --- configure 7 May 2004 10:07:02 -0000 1.14 *************** *** 2,8 **** # From configure.in Revision: 1.427.4.10 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.59 for python 2.3. # ! # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. --- 2,9 ---- # From configure.in Revision: 1.427.4.10 . # Guess values for system-dependent variables and create Makefiles. [...13342 lines suppressed...] sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 21641,21648 **** as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 20010,20017 ---- as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } Index: configure.in =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/configure.in,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** configure.in 4 May 2004 19:34:43 -0000 1.7 --- configure.in 7 May 2004 10:07:02 -0000 1.8 *************** *** 146,149 **** --- 146,160 ---- fi + # Stackless flags for compiling the hard switching code + case $MACHDEP in + darwin) + SLPFLAGS="-fomit-frame-pointer -O2" + ;; + *) + SLPFLAGS="-fno-omit-frame-pointer -O2" + ;; + esac + AC_SUBST(SLPFLAGS) + # Some systems cannot stand _XOPEN_SOURCE being defined at all; they # disable features if it is defined, without any means to access these *************** *** 1304,1307 **** --- 1315,1319 ---- Darwin/*) # Use -undefined dynamic_lookup whenever possible + BASECFLAGS="$BASECFLAGS -fconstant-cfstrings" LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup' BLDSHARED="$LDSHARED" *************** *** 3025,3029 **** AC_SUBST(SRCDIRS) ! SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python Stackless" AC_MSG_CHECKING(for build directories) for dir in $SRCDIRS; do --- 3037,3041 ---- AC_SUBST(SRCDIRS) ! SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python Stackless Stackless/module Stackless/core Stackless/pickling" AC_MSG_CHECKING(for build directories) for dir in $SRCDIRS; do _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:47 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:47 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages Log Message: Directory /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 03:47:59 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 03:47:59 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/core backwardcompat.h, 1.3, 1.4 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/core In directory centera.de:/tmp/cvs-serv2045/dev/Stackless/core Modified Files: backwardcompat.h Log Message: no need for an extra PyAPI_23 definition. PY_VERSION_HEX has it all. Index: backwardcompat.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/backwardcompat.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** backwardcompat.h 1 May 2004 20:24:10 -0000 1.3 --- backwardcompat.h 2 May 2004 01:47:57 -0000 1.4 *************** *** 1,7 **** ! #ifdef PyAPI_DATA ! ! #define PyAPI_23 - #else /* * this is a partial extract from 2.3's pyport.h. --- 1,4 ---- ! #ifndef PyAPI_DATA /* * this is a partial extract from 2.3's pyport.h. *************** *** 54,57 **** --- 51,57 ---- #endif + #endif /* PyAPI_DATA */ + + #if PY_VERSION_HEX < 0x02030000 /* a couple of compatibility definitions */ *************** *** 64,66 **** #define _Py_Ticker (ts->ticker) ! #endif --- 64,66 ---- #define _Py_Ticker (ts->ticker) ! #endif /* pre 2.3 */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:09 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:09 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/Terminal Standard_Suite.py, 1.1, NONE Terminal_Suite.py, 1.1, NONE Text_Suite.py, 1.1, NONE __init__.py, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/Terminal In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/Terminal Removed Files: Standard_Suite.py Terminal_Suite.py Text_Suite.py __init__.py Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- Standard_Suite.py DELETED --- --- Terminal_Suite.py DELETED --- --- Text_Suite.py DELETED --- --- __init__.py DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 21:34:45 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 21:34:45 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless slpconf.sh, 1.6, NONE Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless In directory centera.de:/tmp/cvs-serv22375/2.3/dev/Stackless Removed Files: slpconf.sh Log Message: moved slpconf.sh stuff into configure.in --- slpconf.sh DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:20 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:20 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/test/output test_logging, NONE, 1.1 test_ossaudiodev, NONE, 1.1 test_pep277, NONE, 1.1 test_popen, NONE, 1.1 test_resource, NONE, 1.1 xmltests, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/test/output In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/test/output Added Files: test_logging test_ossaudiodev test_pep277 test_popen test_resource xmltests Log Message: added files --- NEW FILE: test_logging --- test_logging -- log_test0 begin --------------------------------------------------- CRITICAL:ERR:Message 0 ERROR:ERR:Message 1 CRITICAL:INF:Message 2 ERROR:INF:Message 3 WARNING:INF:Message 4 INFO:INF:Message 5 CRITICAL:INF.UNDEF:Message 6 ERROR:INF.UNDEF:Message 7 WARNING:INF.UNDEF:Message 8 INFO:INF.UNDEF:Message 9 CRITICAL:INF.ERR:Message 10 ERROR:INF.ERR:Message 11 CRITICAL:INF.ERR.UNDEF:Message 12 ERROR:INF.ERR.UNDEF:Message 13 CRITICAL:DEB:Message 14 ERROR:DEB:Message 15 WARNING:DEB:Message 16 INFO:DEB:Message 17 DEBUG:DEB:Message 18 CRITICAL:UNDEF:Message 19 ERROR:UNDEF:Message 20 WARNING:UNDEF:Message 21 INFO:UNDEF:Message 22 CRITICAL:INF.BADPARENT.UNDEF:Message 23 CRITICAL:INF.BADPARENT:Message 24 INFO:INF:Finish up, it's closing time. Messages should bear numbers 0 through 24. -- log_test0 end --------------------------------------------------- -- log_test1 begin --------------------------------------------------- -- setting logging level to 'Boring' ----- Boring:root:This should only be seen at the 'Boring' logging level (or lower) Chatterbox:root:This should only be seen at the 'Chatterbox' logging level (or lower) Garrulous:root:This should only be seen at the 'Garrulous' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Chatterbox' ----- Chatterbox:root:This should only be seen at the 'Chatterbox' logging level (or lower) Garrulous:root:This should only be seen at the 'Garrulous' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Garrulous' ----- Garrulous:root:This should only be seen at the 'Garrulous' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Talkative' ----- Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Verbose' ----- Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Sociable' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Effusive' ----- Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Terse' ----- Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Taciturn' ----- Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Silent' ----- Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- Filtering at handler level to SOCIABLE -- -- setting logging level to 'Boring' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Chatterbox' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Garrulous' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Talkative' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Verbose' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Sociable' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Effusive' ----- Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Terse' ----- Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Taciturn' ----- Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Silent' ----- Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- Filtering using GARRULOUS filter -- -- setting logging level to 'Boring' ----- Boring:root:This should only be seen at the 'Boring' logging level (or lower) Chatterbox:root:This should only be seen at the 'Chatterbox' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Chatterbox' ----- Chatterbox:root:This should only be seen at the 'Chatterbox' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Garrulous' ----- Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Talkative' ----- Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Verbose' ----- Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Sociable' ----- Sociable:root:This should only be seen at the 'Sociable' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Effusive' ----- Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Terse' ----- Terse:root:This should only be seen at the 'Terse' logging level (or lower) Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Taciturn' ----- Taciturn:root:This should only be seen at the 'Taciturn' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Silent' ----- Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- Filtering using specific filter for SOCIABLE, TACITURN -- -- setting logging level to 'Boring' ----- Boring:root:This should only be seen at the 'Boring' logging level (or lower) Chatterbox:root:This should only be seen at the 'Chatterbox' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Chatterbox' ----- Chatterbox:root:This should only be seen at the 'Chatterbox' logging level (or lower) Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Garrulous' ----- Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Talkative' ----- Talkative:root:This should only be seen at the 'Talkative' logging level (or lower) Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Verbose' ----- Verbose:root:This should only be seen at the 'Verbose' logging level (or lower) Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Sociable' ----- Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Effusive' ----- Effusive:root:This should only be seen at the 'Effusive' logging level (or lower) Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Terse' ----- Terse:root:This should only be seen at the 'Terse' logging level (or lower) Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Taciturn' ----- Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- setting logging level to 'Silent' ----- Silent:root:This should only be seen at the 'Silent' logging level (or lower) -- log_test1 end --------------------------------------------------- -- log_test2 begin --------------------------------------------------- -- logging at DEBUG, nothing should be seen yet -- -- logging at INFO, nothing should be seen yet -- -- logging at WARNING, 3 messages should be seen -- DEBUG:root:Debug message INFO:root:Info message WARNING:root:Warn message -- logging 0 at INFO, messages should be seen every 10 events -- -- logging 1 at INFO, messages should be seen every 10 events -- -- logging 2 at INFO, messages should be seen every 10 events -- -- logging 3 at INFO, messages should be seen every 10 events -- -- logging 4 at INFO, messages should be seen every 10 events -- -- logging 5 at INFO, messages should be seen every 10 events -- -- logging 6 at INFO, messages should be seen every 10 events -- -- logging 7 at INFO, messages should be seen every 10 events -- -- logging 8 at INFO, messages should be seen every 10 events -- -- logging 9 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 0 INFO:root:Info index = 1 INFO:root:Info index = 2 INFO:root:Info index = 3 INFO:root:Info index = 4 INFO:root:Info index = 5 INFO:root:Info index = 6 INFO:root:Info index = 7 INFO:root:Info index = 8 INFO:root:Info index = 9 -- logging 10 at INFO, messages should be seen every 10 events -- -- logging 11 at INFO, messages should be seen every 10 events -- -- logging 12 at INFO, messages should be seen every 10 events -- -- logging 13 at INFO, messages should be seen every 10 events -- -- logging 14 at INFO, messages should be seen every 10 events -- -- logging 15 at INFO, messages should be seen every 10 events -- -- logging 16 at INFO, messages should be seen every 10 events -- -- logging 17 at INFO, messages should be seen every 10 events -- -- logging 18 at INFO, messages should be seen every 10 events -- -- logging 19 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 10 INFO:root:Info index = 11 INFO:root:Info index = 12 INFO:root:Info index = 13 INFO:root:Info index = 14 INFO:root:Info index = 15 INFO:root:Info index = 16 INFO:root:Info index = 17 INFO:root:Info index = 18 INFO:root:Info index = 19 -- logging 20 at INFO, messages should be seen every 10 events -- -- logging 21 at INFO, messages should be seen every 10 events -- -- logging 22 at INFO, messages should be seen every 10 events -- -- logging 23 at INFO, messages should be seen every 10 events -- -- logging 24 at INFO, messages should be seen every 10 events -- -- logging 25 at INFO, messages should be seen every 10 events -- -- logging 26 at INFO, messages should be seen every 10 events -- -- logging 27 at INFO, messages should be seen every 10 events -- -- logging 28 at INFO, messages should be seen every 10 events -- -- logging 29 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 20 INFO:root:Info index = 21 INFO:root:Info index = 22 INFO:root:Info index = 23 INFO:root:Info index = 24 INFO:root:Info index = 25 INFO:root:Info index = 26 INFO:root:Info index = 27 INFO:root:Info index = 28 INFO:root:Info index = 29 -- logging 30 at INFO, messages should be seen every 10 events -- -- logging 31 at INFO, messages should be seen every 10 events -- -- logging 32 at INFO, messages should be seen every 10 events -- -- logging 33 at INFO, messages should be seen every 10 events -- -- logging 34 at INFO, messages should be seen every 10 events -- -- logging 35 at INFO, messages should be seen every 10 events -- -- logging 36 at INFO, messages should be seen every 10 events -- -- logging 37 at INFO, messages should be seen every 10 events -- -- logging 38 at INFO, messages should be seen every 10 events -- -- logging 39 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 30 INFO:root:Info index = 31 INFO:root:Info index = 32 INFO:root:Info index = 33 INFO:root:Info index = 34 INFO:root:Info index = 35 INFO:root:Info index = 36 INFO:root:Info index = 37 INFO:root:Info index = 38 INFO:root:Info index = 39 -- logging 40 at INFO, messages should be seen every 10 events -- -- logging 41 at INFO, messages should be seen every 10 events -- -- logging 42 at INFO, messages should be seen every 10 events -- -- logging 43 at INFO, messages should be seen every 10 events -- -- logging 44 at INFO, messages should be seen every 10 events -- -- logging 45 at INFO, messages should be seen every 10 events -- -- logging 46 at INFO, messages should be seen every 10 events -- -- logging 47 at INFO, messages should be seen every 10 events -- -- logging 48 at INFO, messages should be seen every 10 events -- -- logging 49 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 40 INFO:root:Info index = 41 INFO:root:Info index = 42 INFO:root:Info index = 43 INFO:root:Info index = 44 INFO:root:Info index = 45 INFO:root:Info index = 46 INFO:root:Info index = 47 INFO:root:Info index = 48 INFO:root:Info index = 49 -- logging 50 at INFO, messages should be seen every 10 events -- -- logging 51 at INFO, messages should be seen every 10 events -- -- logging 52 at INFO, messages should be seen every 10 events -- -- logging 53 at INFO, messages should be seen every 10 events -- -- logging 54 at INFO, messages should be seen every 10 events -- -- logging 55 at INFO, messages should be seen every 10 events -- -- logging 56 at INFO, messages should be seen every 10 events -- -- logging 57 at INFO, messages should be seen every 10 events -- -- logging 58 at INFO, messages should be seen every 10 events -- -- logging 59 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 50 INFO:root:Info index = 51 INFO:root:Info index = 52 INFO:root:Info index = 53 INFO:root:Info index = 54 INFO:root:Info index = 55 INFO:root:Info index = 56 INFO:root:Info index = 57 INFO:root:Info index = 58 INFO:root:Info index = 59 -- logging 60 at INFO, messages should be seen every 10 events -- -- logging 61 at INFO, messages should be seen every 10 events -- -- logging 62 at INFO, messages should be seen every 10 events -- -- logging 63 at INFO, messages should be seen every 10 events -- -- logging 64 at INFO, messages should be seen every 10 events -- -- logging 65 at INFO, messages should be seen every 10 events -- -- logging 66 at INFO, messages should be seen every 10 events -- -- logging 67 at INFO, messages should be seen every 10 events -- -- logging 68 at INFO, messages should be seen every 10 events -- -- logging 69 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 60 INFO:root:Info index = 61 INFO:root:Info index = 62 INFO:root:Info index = 63 INFO:root:Info index = 64 INFO:root:Info index = 65 INFO:root:Info index = 66 INFO:root:Info index = 67 INFO:root:Info index = 68 INFO:root:Info index = 69 -- logging 70 at INFO, messages should be seen every 10 events -- -- logging 71 at INFO, messages should be seen every 10 events -- -- logging 72 at INFO, messages should be seen every 10 events -- -- logging 73 at INFO, messages should be seen every 10 events -- -- logging 74 at INFO, messages should be seen every 10 events -- -- logging 75 at INFO, messages should be seen every 10 events -- -- logging 76 at INFO, messages should be seen every 10 events -- -- logging 77 at INFO, messages should be seen every 10 events -- -- logging 78 at INFO, messages should be seen every 10 events -- -- logging 79 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 70 INFO:root:Info index = 71 INFO:root:Info index = 72 INFO:root:Info index = 73 INFO:root:Info index = 74 INFO:root:Info index = 75 INFO:root:Info index = 76 INFO:root:Info index = 77 INFO:root:Info index = 78 INFO:root:Info index = 79 -- logging 80 at INFO, messages should be seen every 10 events -- -- logging 81 at INFO, messages should be seen every 10 events -- -- logging 82 at INFO, messages should be seen every 10 events -- -- logging 83 at INFO, messages should be seen every 10 events -- -- logging 84 at INFO, messages should be seen every 10 events -- -- logging 85 at INFO, messages should be seen every 10 events -- -- logging 86 at INFO, messages should be seen every 10 events -- -- logging 87 at INFO, messages should be seen every 10 events -- -- logging 88 at INFO, messages should be seen every 10 events -- -- logging 89 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 80 INFO:root:Info index = 81 INFO:root:Info index = 82 INFO:root:Info index = 83 INFO:root:Info index = 84 INFO:root:Info index = 85 INFO:root:Info index = 86 INFO:root:Info index = 87 INFO:root:Info index = 88 INFO:root:Info index = 89 -- logging 90 at INFO, messages should be seen every 10 events -- -- logging 91 at INFO, messages should be seen every 10 events -- -- logging 92 at INFO, messages should be seen every 10 events -- -- logging 93 at INFO, messages should be seen every 10 events -- -- logging 94 at INFO, messages should be seen every 10 events -- -- logging 95 at INFO, messages should be seen every 10 events -- -- logging 96 at INFO, messages should be seen every 10 events -- -- logging 97 at INFO, messages should be seen every 10 events -- -- logging 98 at INFO, messages should be seen every 10 events -- -- logging 99 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 90 INFO:root:Info index = 91 INFO:root:Info index = 92 INFO:root:Info index = 93 INFO:root:Info index = 94 INFO:root:Info index = 95 INFO:root:Info index = 96 INFO:root:Info index = 97 INFO:root:Info index = 98 INFO:root:Info index = 99 -- logging 100 at INFO, messages should be seen every 10 events -- -- logging 101 at INFO, messages should be seen every 10 events -- INFO:root:Info index = 100 INFO:root:Info index = 101 -- log_test2 end --------------------------------------------------- -- log_test3 begin --------------------------------------------------- Unfiltered... INFO:a:Info 1 INFO:a.b:Info 2 INFO:a.c:Info 3 INFO:a.b.c:Info 4 INFO:a.b.c.d:Info 5 INFO:a.bb.c:Info 6 INFO:b:Info 7 INFO:b.a:Info 8 INFO:c.a.b:Info 9 INFO:a.bb:Info 10 Filtered with 'a.b'... INFO:a.b:Info 2 INFO:a.b.c:Info 4 INFO:a.b.c.d:Info 5 -- log_test3 end --------------------------------------------------- -- logrecv output begin --------------------------------------------------- ERR -> CRITICAL: Message 0 (via logrecv.tcp.ERR) ERR -> ERROR: Message 1 (via logrecv.tcp.ERR) INF -> CRITICAL: Message 2 (via logrecv.tcp.INF) INF -> ERROR: Message 3 (via logrecv.tcp.INF) INF -> WARNING: Message 4 (via logrecv.tcp.INF) INF -> INFO: Message 5 (via logrecv.tcp.INF) INF.UNDEF -> CRITICAL: Message 6 (via logrecv.tcp.INF.UNDEF) INF.UNDEF -> ERROR: Message 7 (via logrecv.tcp.INF.UNDEF) INF.UNDEF -> WARNING: Message 8 (via logrecv.tcp.INF.UNDEF) INF.UNDEF -> INFO: Message 9 (via logrecv.tcp.INF.UNDEF) INF.ERR -> CRITICAL: Message 10 (via logrecv.tcp.INF.ERR) INF.ERR -> ERROR: Message 11 (via logrecv.tcp.INF.ERR) INF.ERR.UNDEF -> CRITICAL: Message 12 (via logrecv.tcp.INF.ERR.UNDEF) INF.ERR.UNDEF -> ERROR: Message 13 (via logrecv.tcp.INF.ERR.UNDEF) DEB -> CRITICAL: Message 14 (via logrecv.tcp.DEB) DEB -> ERROR: Message 15 (via logrecv.tcp.DEB) DEB -> WARNING: Message 16 (via logrecv.tcp.DEB) DEB -> INFO: Message 17 (via logrecv.tcp.DEB) DEB -> DEBUG: Message 18 (via logrecv.tcp.DEB) UNDEF -> CRITICAL: Message 19 (via logrecv.tcp.UNDEF) UNDEF -> ERROR: Message 20 (via logrecv.tcp.UNDEF) UNDEF -> WARNING: Message 21 (via logrecv.tcp.UNDEF) UNDEF -> INFO: Message 22 (via logrecv.tcp.UNDEF) INF.BADPARENT.UNDEF -> CRITICAL: Message 23 (via logrecv.tcp.INF.BADPARENT.UNDEF) INF.BADPARENT -> CRITICAL: Message 24 (via logrecv.tcp.INF.BADPARENT) INF -> INFO: Finish up, it's closing time. Messages should bear numbers 0 through 24. (via logrecv.tcp.INF) -- logrecv output end --------------------------------------------------- --- NEW FILE: test_ossaudiodev --- test_ossaudiodev playing test sound file... elapsed time: 2.9 sec setparameters: got OSSAudioError as expected setparameters: got OSSAudioError as expected setparameters: got OSSAudioError as expected --- NEW FILE: test_pep277 --- test_pep277 u'\xdf-\u66e8\u66e9\u66eb' ['???', '???', '??????', '????????????', '????G\xdf', 'Ge??-sa?', 'Gr\xfc\xdf-Gott', 'abc', 'ascii'] [u'Gr\xfc\xdf-Gott', u'abc', u'ascii', u'\u0393\u03b5\u03b9\u03ac-\u03c3\u03b1\u03c2', u'\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435', u'\u05d4\u05e9\u05e7\u05e6\u05e5\u05e1', u'\u306b\u307d\u3093', u'\u66e8\u05e9\u3093\u0434\u0393\xdf', u'\u66e8\u66e9\u66eb'] --- NEW FILE: test_popen --- test_popen Test popen: popen seemed to process the command-line correctly --- NEW FILE: test_resource --- test_resource True --- NEW FILE: xmltests --- xmltests Passed testAAA Passed setAttribute() sets ownerDocument Passed setAttribute() sets ownerElement Test Succeeded testAAA Passed assertion: len(Node.allnodes) == 0 Passed testAAB Test Succeeded testAAB Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Passed Test Passed Test Passed Test Passed Test Passed Test Passed Test Test Succeeded testAddAttr Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testAppendChild Passed assertion: len(Node.allnodes) == 0 Passed appendChild() Test Succeeded testAppendChildFragment Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListItem Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListItemNS Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListItems Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListKeys Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListKeysNS Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListLength Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListValues Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrList__getitem__ Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrList__setitem__ Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testAttributeRepr Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Passed Test Passed Test Passed Test Test Succeeded testChangeAttr Passed assertion: len(Node.allnodes) == 0 Test Succeeded testChildNodes Passed assertion: len(Node.allnodes) == 0 Test Succeeded testCloneAttributeDeep Passed assertion: len(Node.allnodes) == 0 Test Succeeded testCloneAttributeShallow Passed assertion: len(Node.allnodes) == 0 Test Succeeded testCloneDocumentDeep Passed assertion: len(Node.allnodes) == 0 Test Succeeded testCloneDocumentShallow Passed assertion: len(Node.allnodes) == 0 Passed clone of element has same attribute keys Passed clone of attribute node has proper attribute values Passed clone of attribute node correctly owned Passed testCloneElementDeep Test Succeeded testCloneElementDeep Passed assertion: len(Node.allnodes) == 0 Passed clone of element has same attribute keys Passed clone of attribute node has proper attribute values Passed clone of attribute node correctly owned Passed testCloneElementShallow Test Succeeded testCloneElementShallow Passed assertion: len(Node.allnodes) == 0 Test Succeeded testClonePIDeep Passed assertion: len(Node.allnodes) == 0 Test Succeeded testClonePIShallow Passed assertion: len(Node.allnodes) == 0 Test Succeeded testComment Passed assertion: len(Node.allnodes) == 0 Test Succeeded testCreateAttributeNS Passed assertion: len(Node.allnodes) == 0 Test Succeeded testCreateElementNS Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Passed Test Test Succeeded testDeleteAttr Passed assertion: len(Node.allnodes) == 0 Test Succeeded testDocumentElement Passed assertion: len(Node.allnodes) == 0 Passed Test Test Succeeded testElement Passed assertion: len(Node.allnodes) == 0 Passed Test Test Succeeded testElementReprAndStr Passed assertion: len(Node.allnodes) == 0 Test Succeeded testFirstChild Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetAttrLength Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetAttrList Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetAttrValues Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetAttribute Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetAttributeNS Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetAttributeNode Passed assertion: len(Node.allnodes) == 0 Passed Test Test Succeeded testGetElementsByTagName Passed assertion: len(Node.allnodes) == 0 Passed Test Test Succeeded testGetElementsByTagNameNS Passed assertion: len(Node.allnodes) == 0 Test Succeeded testGetEmptyNodeListFromElementsByTagNameNS Passed assertion: len(Node.allnodes) == 0 Test Succeeded testHasChildNodes Passed assertion: len(Node.allnodes) == 0 Passed testInsertBefore -- node properly placed in tree Passed testInsertBefore -- node properly placed in tree Passed testInsertBefore -- node properly placed in tree Test Succeeded testInsertBefore Passed assertion: len(Node.allnodes) == 0 Passed insertBefore(, None) Passed insertBefore(, orig) Test Succeeded testInsertBeforeFragment Passed assertion: len(Node.allnodes) == 0 Test Succeeded testLegalChildren Passed assertion: len(Node.allnodes) == 0 Passed NamedNodeMap.__setitem__() sets ownerDocument Passed NamedNodeMap.__setitem__() sets ownerElement Passed NamedNodeMap.__setitem__() sets value Passed NamedNodeMap.__setitem__() sets nodeValue Test Succeeded testNamedNodeMapSetItem Passed assertion: len(Node.allnodes) == 0 Passed test NodeList.item() Test Succeeded testNodeListItem Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testNonZero Passed assertion: len(Node.allnodes) == 0 Passed testNormalize -- preparation Passed testNormalize -- result Passed testNormalize -- single empty node removed Test Succeeded testNormalize Passed assertion: len(Node.allnodes) == 0 Passed testParents Test Succeeded testParents Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParse Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParseAttributeNamespaces Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParseAttributes Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParseElement Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParseElementNamespaces Passed assertion: len(Node.allnodes) == 0 Passed Test Test Succeeded testParseFromFile Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParseProcessingInstructions Passed assertion: len(Node.allnodes) == 0 Test Succeeded testParseString Passed assertion: len(Node.allnodes) == 0 Test Succeeded testProcessingInstruction Passed assertion: len(Node.allnodes) == 0 Test Succeeded testProcessingInstructionRepr Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testRemoveAttr Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testRemoveAttrNS Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testRemoveAttributeNode Passed assertion: len(Node.allnodes) == 0 Passed replaceChild() Test Succeeded testReplaceChildFragment Passed assertion: len(Node.allnodes) == 0 Passed testSAX2DOM - siblings Passed testSAX2DOM - parents Test Succeeded testSAX2DOM Passed assertion: len(Node.allnodes) == 0 Test Succeeded testSetAttrValueandNodeValue Passed assertion: len(Node.allnodes) == 0 Passed testSiblings Test Succeeded testSiblings Passed assertion: len(Node.allnodes) == 0 Test Succeeded testTextNodeRepr Passed assertion: len(Node.allnodes) == 0 Test Succeeded testTextRepr Passed assertion: len(Node.allnodes) == 0 Caught expected exception when adding extra document element. Test Succeeded testTooManyDocumentElements Passed assertion: len(Node.allnodes) == 0 Test Succeeded testUnlink Passed assertion: len(Node.allnodes) == 0 Test Succeeded testWriteText Passed assertion: len(Node.allnodes) == 0 Passed Test Passed Test Test Succeeded testWriteXML Passed assertion: len(Node.allnodes) == 0 All tests succeeded OK. OK. OK. OK. OK. OK. OK. OK. OK. OK. OK. OK. PI: 'xml-stylesheet' 'href="stylesheet.css"' Comment: ' comment data ' Notation declared: ('notation', None, 'notation.jpeg', None) Unparsed entity decl: ('unparsed_entity', None, 'entity.file', None, 'notation') Start element: 'root' {'attr1': 'value1', 'attr2': 'value2\xe1\xbd\x80'} NS decl: 'myns' 'http://www.python.org/namespace' Start element: 'http://www.python.org/namespace!subelement' {} Character data: 'Contents of subelements' End element: 'http://www.python.org/namespace!subelement' End of NS decl: 'myns' Start element: 'sub2' {} Start of CDATA section Character data: 'contents of CDATA section' End of CDATA section End element: 'sub2' External entity ref: (None, 'entity.file', None) End element: 'root' PI: u'xml-stylesheet' u'href="stylesheet.css"' Comment: u' comment data ' Notation declared: (u'notation', None, u'notation.jpeg', None) Unparsed entity decl: (u'unparsed_entity', None, u'entity.file', None, u'notation') Start element: u'root' {u'attr1': u'value1', u'attr2': u'value2\u1f40'} NS decl: u'myns' u'http://www.python.org/namespace' Start element: u'http://www.python.org/namespace!subelement' {} Character data: u'Contents of subelements' End element: u'http://www.python.org/namespace!subelement' End of NS decl: u'myns' Start element: u'sub2' {} Start of CDATA section Character data: u'contents of CDATA section' End of CDATA section End element: u'sub2' External entity ref: (None, u'entity.file', None) End element: u'root' PI: u'xml-stylesheet' u'href="stylesheet.css"' Comment: u' comment data ' Notation declared: (u'notation', None, u'notation.jpeg', None) Unparsed entity decl: (u'unparsed_entity', None, u'entity.file', None, u'notation') Start element: u'root' {u'attr1': u'value1', u'attr2': u'value2\u1f40'} NS decl: u'myns' u'http://www.python.org/namespace' Start element: u'http://www.python.org/namespace!subelement' {} Character data: u'Contents of subelements' End element: u'http://www.python.org/namespace!subelement' End of NS decl: u'myns' Start element: u'sub2' {} Start of CDATA section Character data: u'contents of CDATA section' End of CDATA section End element: u'sub2' External entity ref: (None, u'entity.file', None) End element: u'root' Testing constructor for proper handling of namespace_separator values: Legal values tested o.k. Caught expected TypeError: ParserCreate() argument 2 must be string or None, not int Caught expected ValueError: namespace_separator must be at most one character, omitted, or None Passed test_attrs_empty Passed test_attrs_wattr Passed test_double_quoteattr Passed test_escape_all Passed test_escape_basic Passed test_escape_extra Passed test_expat_attrs_empty Passed test_expat_attrs_wattr Passed test_expat_dtdhandler Passed test_expat_entityresolver Passed test_expat_file Passed test_expat_incomplete Passed test_expat_incremental Passed test_expat_incremental_reset Passed test_expat_inpsource_filename Passed test_expat_inpsource_location Passed test_expat_inpsource_stream Passed test_expat_inpsource_sysid Passed test_expat_locator_noinfo Passed test_expat_locator_withinfo Passed test_expat_nsattrs_empty Passed test_expat_nsattrs_wattr Passed test_filter_basic Passed test_make_parser Passed test_make_parser2 Passed test_nsattrs_empty Passed test_nsattrs_wattr Passed test_quoteattr_basic Passed test_single_double_quoteattr Passed test_single_quoteattr Passed test_xmlgen_attr_escape Passed test_xmlgen_basic Passed test_xmlgen_content Passed test_xmlgen_content_escape Passed test_xmlgen_ignorable Passed test_xmlgen_ns Passed test_xmlgen_pi 37 tests, 0 failures _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:45 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:45 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Demo/cgi - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Demo/cgi In directory centera.de:/home/tismer/slpdev/src/2.2/src/Demo/cgi Log Message: Directory /home/cvs/slpdev/src/2.2/src/Demo/cgi added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:26:44 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:26:44 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src .cvsignore, 1.6, 1.7 Makefile.pre.in, 1.16, 1.17 README, 1.2, 1.3 setup.py, 1.19, 1.20 Message-ID: Update of /home/cvs/slpdev/src/2.2/src In directory centera.de:/home/tismer/slpdev/src/2.2/src Modified Files: .cvsignore Makefile.pre.in README setup.py Log Message: hopefully this is now a base version Index: .cvsignore =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/.cvsignore,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** .cvsignore 30 Apr 2004 22:11:26 -0000 1.6 --- .cvsignore 1 May 2004 00:26:42 -0000 1.7 *************** *** 1,11 **** ! .purify ! config.log ! config.cache ! config.status Makefile ! buildno ! python ! build ! Makefile.pre ! platform ! pyconfig.h --- 1,6 ---- ! M_*.c ! *.o Makefile ! config.c ! frozen.c ! hello Index: Makefile.pre.in =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Makefile.pre.in,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.pre.in 27 Aug 2003 00:38:08 -0000 1.16 --- Makefile.pre.in 1 May 2004 00:26:42 -0000 1.17 *************** *** 57,61 **** DEFS= @DEFS@ CFLAGS= $(OPT) ! CPPFLAGS= -I. -I$(srcdir)/Include -I$(srcdir)/Stackless $(DEFS) LDFLAGS= @LDFLAGS@ LDLAST= @LDLAST@ --- 57,61 ---- DEFS= @DEFS@ CFLAGS= $(OPT) ! CPPFLAGS= -I. -I$(srcdir)/Include $(DEFS) LDFLAGS= @LDFLAGS@ LDLAST= @LDLAST@ *************** *** 67,72 **** # C flags used for building the interpreter object files PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) ! # Special C flags for slp_transfer.c ! SLPFLAGS= @SLPFLAGS@ # Machine-dependent subdirectories --- 67,71 ---- # C flags used for building the interpreter object files PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) ! # Machine-dependent subdirectories *************** *** 211,228 **** Python/exceptions.o \ Python/ceval.o \ - Stackless/stacklesseval.o \ - Stackless/slp_transfer.o \ - Stackless/stacklessmodule.o \ - Stackless/atomicobject.o \ - Stackless/cframeobject.o \ - Stackless/channelobject.o \ - Stackless/flextype.o \ - Stackless/scheduling.o \ - Stackless/schedulerobject.o \ - Stackless/stackless_debug.o \ - Stackless/stackless_util.o \ - Stackless/taskletobject.o \ - Stackless/nonrecursive.o \ - Stackless/prickelpit.o \ Python/compile.o \ Python/codecs.o \ --- 210,213 ---- *************** *** 444,450 **** $(srcdir)/Objects/unicodetype_db.h - Stackless/slp_transfer.o: $(srcdir)/Stackless/slp_transfer.c - $(CC) -c $(CFLAGS) $(CPPFLAGS) $(SLPFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Stackless/slp_transfer.c - ############################################################################ # Header files --- 429,432 ---- *************** *** 495,524 **** Include/unicodeobject.h \ Include/weakrefobject.h \ - Stackless/atomicobject.h \ - Stackless/cframeobject.h \ - Stackless/channelobject.h \ - Stackless/cstackobject.h \ - Stackless/flextype.h \ - Stackless/nonrecursive.h \ - Stackless/prickelpit.h \ - Stackless/schedulerobject.h \ - Stackless/slp_platformselect.h \ - Stackless/stackless.h \ - Stackless/stacklesseval.h \ - Stackless/stacklessversion.h \ - Stackless/stackless_api.h \ - Stackless/stackless_ceval.h \ - Stackless/stackless_frame.h \ - Stackless/stackless_impl.h \ - Stackless/stackless_structs.h \ - Stackless/stackless_tstate.h \ - Stackless/stackless_version.h \ - Stackless/switch_ppc_macosx.h \ - Stackless/switch_ppc_unix.h \ - Stackless/switch_s390_unix.h \ - Stackless/switch_sparc_sun_gcc.h \ - Stackless/switch_x86_msvc.h \ - Stackless/switch_x86_unix.h \ - Stackless/taskletobject.h \ pyconfig.h --- 477,480 ---- *************** *** 712,716 **** fi; \ done ! @for i in $(srcdir)/Include/*.h $(srcdir)/Stackless/*.h; \ do \ echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ --- 668,672 ---- fi; \ done ! @for i in $(srcdir)/Include/*.h; \ do \ echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ Index: README =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/README,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** README 21 Aug 2003 16:59:13 -0000 1.2 --- README 1 May 2004 00:26:42 -0000 1.3 *************** *** 1,1032 **** ! This is Python version 2.2.3 ! ============================ ! ! Copyright (c) 2001, 2002, 2003 Python Software Foundation. ! All rights reserved. ! ! Copyright (c) 2000 BeOpen.com. ! All rights reserved. ! ! Copyright (c) 1995-2001 Corporation for National Research Initiatives. [...1088 lines suppressed...] + of a Python dictionary, and country names are normalized + w.r.t. capitalization. This makes it appropriate for cutting and + pasting back into this file. ! --reverse ! -r ! Force reverse lookup. In this mode the address can be any Python ! regular expression; this is matched against all country names and a ! list of matching mappings is printed. In normal mode (e.g. without ! this flag), reverse lookup is performed on addresses if no matching ! country code is found. + -h + --help + Print this message. ! ! Local Variables: ! indent-tabs-mode: nil ! End: Index: setup.py =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/setup.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** setup.py 22 Aug 2003 14:39:00 -0000 1.19 --- setup.py 1 May 2004 00:26:42 -0000 1.20 *************** *** 1,816 **** ! # Autodetecting setup.py script for building the Python extensions ! # ! ! __version__ = "$Revision$" ! ! import sys, os, getopt, imp ! from distutils import sysconfig ! from distutils import text_file ! from distutils.errors import * ! from distutils.core import Extension, setup ! from distutils.command.build_ext import build_ext ! from distutils.command.install import install ! ! # This global variable is used to hold the list of modules to be disabled. ! disabled_module_list = [] ! ! def find_file(filename, std_dirs, paths): ! """Searches for the directory where a given file is located, ! and returns a possibly-empty list of additional directories, or None ! if the file couldn't be found at all. ! ! 'filename' is the name of a file, such as readline.h or libcrypto.a. ! 'std_dirs' is the list of standard system directories; if the ! file is found in one of them, no additional directives are needed. ! 'paths' is a list of additional locations to check; if the file is ! found in one of them, the resulting list will contain the directory. ! """ ! ! # Check the standard locations ! for dir in std_dirs: ! f = os.path.join(dir, filename) ! if os.path.exists(f): return [] ! ! # Check the additional directories ! for dir in paths: ! f = os.path.join(dir, filename) ! if os.path.exists(f): ! return [dir] ! ! # Not found anywhere ! return None ! ! def find_library_file(compiler, libname, std_dirs, paths): ! filename = compiler.library_filename(libname, lib_type='shared') ! result = find_file(filename, std_dirs, paths) ! if result is not None: return result ! ! filename = compiler.library_filename(libname, lib_type='static') ! result = find_file(filename, std_dirs, paths) ! return result ! ! def module_enabled(extlist, modname): ! """Returns whether the module 'modname' is present in the list ! of extensions 'extlist'.""" ! extlist = [ext for ext in extlist if ext.name == modname] ! return len(extlist) ! ! def find_module_file(module, dirlist): ! """Find a module in a set of possible folders. If it is not found ! return the unadorned filename""" ! list = find_file(module, [], dirlist) ! if not list: ! return module ! if len(list) > 1: ! self.announce("WARNING: multiple copies of %s found"%module) ! return os.path.join(list[0], module) ! ! class PyBuildExt(build_ext): ! ! def build_extensions(self): ! ! # Detect which modules should be compiled ! self.detect_modules() ! ! # Remove modules that are present on the disabled list ! self.extensions = [ext for ext in self.extensions ! if ext.name not in disabled_module_list] ! ! # Fix up the autodetected modules, prefixing all the source files ! # with Modules/ and adding Python's include directory to the path. ! (srcdir,) = sysconfig.get_config_vars('srcdir') ! ! # Figure out the location of the source code for extension modules ! moddir = os.path.join(os.getcwd(), srcdir, 'Modules') ! moddir = os.path.normpath(moddir) ! srcdir, tail = os.path.split(moddir) ! srcdir = os.path.normpath(srcdir) ! moddir = os.path.normpath(moddir) ! ! moddirlist = [moddir] ! incdirlist = ['./Include', './Stackless'] ! ! # Platform-dependent module source and include directories ! platform = self.get_platform() ! if platform == 'darwin': ! # Mac OS X also includes some mac-specific modules ! macmoddir = os.path.join(os.getcwd(), srcdir, 'Mac/Modules') ! moddirlist.append(macmoddir) ! incdirlist.append('./Mac/Include') ! ! # Fix up the paths for scripts, too ! self.distribution.scripts = [os.path.join(srcdir, filename) ! for filename in self.distribution.scripts] ! ! for ext in self.extensions[:]: ! ext.sources = [ find_module_file(filename, moddirlist) ! for filename in ext.sources ] ! ext.include_dirs.append( '.' ) # to get config.h ! for incdir in incdirlist: ! ext.include_dirs.append( os.path.join(srcdir, incdir) ) ! ! # If a module has already been built statically, ! # don't build it here ! if ext.name in sys.builtin_module_names: ! self.extensions.remove(ext) ! ! # Parse Modules/Setup to figure out which modules are turned ! # on in the file. ! input = text_file.TextFile('Modules/Setup', join_lines=1) ! remove_modules = [] ! while 1: ! line = input.readline() ! if not line: break ! line = line.split() ! remove_modules.append( line[0] ) ! input.close() ! ! for ext in self.extensions[:]: ! if ext.name in remove_modules: ! self.extensions.remove(ext) ! ! # When you run "make CC=altcc" or something similar, you really want ! # those environment variables passed into the setup.py phase. Here's ! # a small set of useful ones. ! compiler = os.environ.get('CC') ! linker_so = os.environ.get('LDSHARED') ! args = {} ! # unfortunately, distutils doesn't let us provide separate C and C++ ! # compilers ! if compiler is not None: ! (ccshared,opt) = sysconfig.get_config_vars('CCSHARED','OPT') ! args['compiler_so'] = compiler + ' ' + opt + ' ' + ccshared ! if linker_so is not None: ! args['linker_so'] = linker_so ! self.compiler.set_executables(**args) ! ! build_ext.build_extensions(self) ! ! def build_extension(self, ext): ! ! try: ! build_ext.build_extension(self, ext) ! except (CCompilerError, DistutilsError), why: ! self.announce('WARNING: building of extension "%s" failed: %s' % ! (ext.name, sys.exc_info()[1])) ! return ! # Workaround for Mac OS X: The Carbon-based modules cannot be ! # reliably imported into a command-line Python ! if 'Carbon' in ext.extra_link_args: ! self.announce( ! 'WARNING: skipping import check for Carbon-based "%s"' % ! ext.name) ! return ! # Workaround for Cygwin: Cygwin currently has fork issues when many ! # modules have been imported ! if self.get_platform() == 'cygwin': ! self.announce('WARNING: skipping import check for Cygwin-based "%s"' ! % ext.name) ! return ! ext_filename = os.path.join( ! self.build_lib, ! self.get_ext_filename(self.get_ext_fullname(ext.name))) ! try: ! imp.load_dynamic(ext.name, ext_filename) ! except ImportError, why: ! if 1: ! self.announce('*** WARNING: renaming "%s" since importing it' ! ' failed: %s' % (ext.name, why)) ! assert not self.inplace ! basename, tail = os.path.splitext(ext_filename) ! newname = basename + "_failed" + tail ! if os.path.exists(newname): os.remove(newname) ! os.rename(ext_filename, newname) ! ! # XXX -- This relies on a Vile HACK in ! # distutils.command.build_ext.build_extension(). The ! # _built_objects attribute is stored there strictly for ! # use here. ! # If there is a failure, _built_objects may not be there, ! # so catch the AttributeError and move on. ! try: ! for filename in self._built_objects: ! os.remove(filename) ! except AttributeError: ! self.announce('unable to remove files (ignored)') ! else: ! self.announce('*** WARNING: importing extension "%s" ' ! 'failed: %s' % (ext.name, why)) ! ! def get_platform (self): ! # Get value of sys.platform ! platform = sys.platform ! if platform[:6] =='cygwin': ! platform = 'cygwin' ! elif platform[:4] =='beos': ! platform = 'beos' ! elif platform[:6] == 'darwin': ! platform = 'darwin' ! ! return platform ! ! def detect_modules(self): ! # Ensure that /usr/local is always used ! if '/usr/local/lib' not in self.compiler.library_dirs: ! self.compiler.library_dirs.insert(0, '/usr/local/lib') ! if '/usr/local/include' not in self.compiler.include_dirs: ! self.compiler.include_dirs.insert(0, '/usr/local/include' ) ! ! try: ! have_unicode = unicode ! except NameError: ! have_unicode = 0 ! ! # lib_dirs and inc_dirs are used to search for files; ! # if a file is found in one of those directories, it can ! # be assumed that no additional -I,-L directives are needed. ! lib_dirs = self.compiler.library_dirs + ['/lib', '/usr/lib'] ! inc_dirs = self.compiler.include_dirs + ['/usr/include'] ! exts = [] ! ! platform = self.get_platform() ! ! # Check for MacOS X, which doesn't need libm.a at all ! math_libs = ['m'] ! if platform in ['darwin', 'beos']: ! math_libs = [] ! ! # XXX Omitted modules: gl, pure, dl, SGI-specific modules ! ! # ! # The following modules are all pretty straightforward, and compile ! # on pretty much any POSIXish platform. ! # ! ! # Some modules that are normally always on: ! exts.append( Extension('regex', ['regexmodule.c', 'regexpr.c']) ) ! exts.append( Extension('pcre', ['pcremodule.c', 'pypcre.c']) ) ! ! exts.append( Extension('_hotshot', ['_hotshot.c']) ) ! exts.append( Extension('_weakref', ['_weakref.c']) ) ! exts.append( Extension('xreadlines', ['xreadlinesmodule.c']) ) ! ! # array objects ! exts.append( Extension('array', ['arraymodule.c']) ) ! # complex math library functions ! exts.append( Extension('cmath', ['cmathmodule.c'], ! libraries=math_libs) ) ! ! # math library functions, e.g. sin() ! exts.append( Extension('math', ['mathmodule.c'], ! libraries=math_libs) ) ! # fast string operations implemented in C ! exts.append( Extension('strop', ['stropmodule.c']) ) ! # time operations and variables ! exts.append( Extension('time', ['timemodule.c'], ! libraries=math_libs) ) ! # operator.add() and similar goodies ! exts.append( Extension('operator', ['operator.c']) ) ! # access to the builtin codecs and codec registry ! exts.append( Extension('_codecs', ['_codecsmodule.c']) ) ! # Python C API test module ! exts.append( Extension('_testcapi', ['_testcapimodule.c']) ) ! # static Unicode character database ! if have_unicode: ! exts.append( Extension('unicodedata', ['unicodedata.c']) ) ! # access to ISO C locale support ! exts.append( Extension('_locale', ['_localemodule.c']) ) ! ! # Modules with some UNIX dependencies -- on by default: ! # (If you have a really backward UNIX, select and socket may not be ! # supported...) ! ! # fcntl(2) and ioctl(2) ! exts.append( Extension('fcntl', ['fcntlmodule.c']) ) ! # pwd(3) ! exts.append( Extension('pwd', ['pwdmodule.c']) ) ! # grp(3) ! exts.append( Extension('grp', ['grpmodule.c']) ) ! # select(2); not on ancient System V ! exts.append( Extension('select', ['selectmodule.c']) ) ! ! # The md5 module implements the RSA Data Security, Inc. MD5 ! # Message-Digest Algorithm, described in RFC 1321. The ! # necessary files md5c.c and md5.h are included here. ! exts.append( Extension('md5', ['md5module.c', 'md5c.c']) ) ! ! # The sha module implements the SHA checksum algorithm. ! # (NIST's Secure Hash Algorithm.) ! exts.append( Extension('sha', ['shamodule.c']) ) ! ! # Helper module for various ascii-encoders ! exts.append( Extension('binascii', ['binascii.c']) ) ! ! # Fred Drake's interface to the Python parser ! exts.append( Extension('parser', ['parsermodule.c']) ) ! ! # Digital Creations' cStringIO and cPickle ! exts.append( Extension('cStringIO', ['cStringIO.c']) ) ! exts.append( Extension('cPickle', ['cPickle.c']) ) ! ! # Memory-mapped files (also works on Win32). ! exts.append( Extension('mmap', ['mmapmodule.c']) ) ! ! # Lance Ellinghaus's modules: ! # enigma-inspired encryption ! exts.append( Extension('rotor', ['rotormodule.c']) ) ! # syslog daemon interface ! exts.append( Extension('syslog', ['syslogmodule.c']) ) ! ! # George Neville-Neil's timing module: ! exts.append( Extension('timing', ['timingmodule.c']) ) ! ! # ! # Here ends the simple stuff. From here on, modules need certain ! # libraries, are platform-specific, or present other surprises. ! # ! ! # Multimedia modules ! # These don't work for 64-bit platforms!!! ! # These represent audio samples or images as strings: ! ! # Disabled on 64-bit platforms ! if sys.maxint != 9223372036854775807L: ! # Operations on audio samples ! exts.append( Extension('audioop', ['audioop.c']) ) ! # Operations on images ! exts.append( Extension('imageop', ['imageop.c']) ) ! # Read SGI RGB image files (but coded portably) ! exts.append( Extension('rgbimg', ['rgbimgmodule.c']) ) ! ! # readline ! if self.compiler.find_library_file(lib_dirs, 'readline'): ! readline_libs = ['readline'] ! if self.compiler.find_library_file(lib_dirs, ! 'ncurses'): ! readline_libs.append('ncurses') ! elif self.compiler.find_library_file(lib_dirs + ! ['/usr/lib/termcap'], ! 'termcap'): ! readline_libs.append('termcap') ! exts.append( Extension('readline', ['readline.c'], ! library_dirs=['/usr/lib/termcap'], ! libraries=readline_libs) ) ! ! # crypt module. ! ! if self.compiler.find_library_file(lib_dirs, 'crypt'): ! libs = ['crypt'] ! else: ! libs = [] ! exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) ! ! # socket(2) ! # Detect SSL support for the socket module ! ssl_incs = find_file('openssl/ssl.h', inc_dirs, ! ['/usr/local/ssl/include', ! '/usr/contrib/ssl/include/' ! ] ! ) ! ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, ! ['/usr/local/ssl/lib', ! '/usr/contrib/ssl/lib/' ! ] ) ! ! if ssl_incs is not None: ! krb5_h = find_file('krb5.h', inc_dirs, ! ['/usr/kerberos/include']) ! if krb5_h: ! ssl_incs += krb5_h ! ! if ssl_incs is not None and ssl_libs is not None: ! rtlibs = None ! if platform.startswith('sunos'): ! rtlibs = ssl_libs ! exts.append( Extension('_socket', ['socketmodule.c'], ! include_dirs = ssl_incs, ! library_dirs = ssl_libs, ! runtime_library_dirs = rtlibs, ! libraries = ['ssl', 'crypto'], ! define_macros = [('USE_SSL',1)] ) ) ! else: ! exts.append( Extension('_socket', ['socketmodule.c']) ) ! ! # Modules that provide persistent dictionary-like semantics. You will ! # probably want to arrange for at least one of them to be available on ! # your machine, though none are defined by default because of library ! # dependencies. The Python module anydbm.py provides an ! # implementation independent wrapper for these; dumbdbm.py provides ! # similar functionality (but slower of course) implemented in Python. ! ! # The standard Unix dbm module: ! if platform not in ['cygwin']: ! if (self.compiler.find_library_file(lib_dirs, 'ndbm')): ! exts.append( Extension('dbm', ['dbmmodule.c'], ! libraries = ['ndbm'] ) ) ! elif self.compiler.find_library_file(lib_dirs, 'db1'): ! exts.append( Extension('dbm', ['dbmmodule.c'], ! libraries = ['db1'] ) ) ! elif self.compiler.find_library_file(lib_dirs, 'gdbm'): ! exts.append( Extension('dbm', ['dbmmodule.c'], ! libraries = ['gdbm'] ) ) ! else: ! exts.append( Extension('dbm', ['dbmmodule.c']) ) ! ! # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: ! if (self.compiler.find_library_file(lib_dirs, 'gdbm')): ! exts.append( Extension('gdbm', ['gdbmmodule.c'], ! libraries = ['gdbm'] ) ) ! ! # Berkeley DB interface. ! # ! # This requires the Berkeley DB code, see ! # ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz ! # ! # Edit the variables DB and DBPORT to point to the db top directory ! # and the subdirectory of PORT where you built it. ! # ! # (See http://pybsddb.sourceforge.net/ for an interface to ! # Berkeley DB 3.x.) ! ! dblib = [] ! if self.compiler.find_library_file(lib_dirs, 'db-3.2'): ! dblib = ['db-3.2'] ! elif self.compiler.find_library_file(lib_dirs, 'db-3.1'): ! dblib = ['db-3.1'] ! elif self.compiler.find_library_file(lib_dirs, 'db3'): ! dblib = ['db3'] ! elif self.compiler.find_library_file(lib_dirs, 'db2'): ! dblib = ['db2'] ! elif self.compiler.find_library_file(lib_dirs, 'db1'): ! dblib = ['db1'] ! elif self.compiler.find_library_file(lib_dirs, 'db'): ! dblib = ['db'] ! ! db185_incs = find_file('db_185.h', inc_dirs, ! ['/usr/include/db3', '/usr/include/db2']) ! db_inc = find_file('db.h', inc_dirs, ['/usr/include/db1']) ! if db185_incs is not None: ! exts.append( Extension('bsddb', ['bsddbmodule.c'], ! include_dirs = db185_incs, ! define_macros=[('HAVE_DB_185_H',1)], ! libraries = dblib ) ) ! elif db_inc is not None: ! exts.append( Extension('bsddb', ['bsddbmodule.c'], ! include_dirs = db_inc, ! libraries = dblib) ) ! ! # The mpz module interfaces to the GNU Multiple Precision library. ! # You need to ftp the GNU MP library. ! # This was originally written and tested against GMP 1.2 and 1.3.2. ! # It has been modified by Rob Hooft to work with 2.0.2 as well, but I ! # haven't tested it recently, and it definitely doesn't work with ! # GMP 4.0. For more complete modules, refer to ! # http://gmpy.sourceforge.net and ! # http://www.egenix.com/files/python/mxNumber.html ! ! # A compatible MP library unencumbered by the GPL also exists. It was ! # posted to comp.sources.misc in volume 40 and is widely available from ! # FTP archive sites. One URL for it is: ! # ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume40/fgmp/part01.Z ! ! if (self.compiler.find_library_file(lib_dirs, 'gmp')): ! exts.append( Extension('mpz', ['mpzmodule.c'], ! libraries = ['gmp'] ) ) ! ! ! # Unix-only modules ! if platform not in ['mac', 'win32']: ! # Steen Lumholt's termios module ! exts.append( Extension('termios', ['termios.c']) ) ! # Jeremy Hylton's rlimit interface ! exts.append( Extension('resource', ['resource.c']) ) ! ! # Sun yellow pages. Some systems have the functions in libc. ! if platform not in ['cygwin']: ! if (self.compiler.find_library_file(lib_dirs, 'nsl')): ! libs = ['nsl'] ! else: ! libs = [] ! exts.append( Extension('nis', ['nismodule.c'], ! libraries = libs) ) ! ! # Curses support, requring the System V version of curses, often ! # provided by the ncurses library. ! if platform == 'sunos4': ! inc_dirs += ['/usr/5include'] ! lib_dirs += ['/usr/5lib'] ! ! if (self.compiler.find_library_file(lib_dirs, 'ncurses')): ! curses_libs = ['ncurses'] ! exts.append( Extension('_curses', ['_cursesmodule.c'], ! libraries = curses_libs) ) ! elif (self.compiler.find_library_file(lib_dirs, 'curses') ! and platform != 'darwin'): ! # OSX has an old Berkeley curses, not good enough for ! # the _curses module. ! if (self.compiler.find_library_file(lib_dirs, 'terminfo')): ! curses_libs = ['curses', 'terminfo'] ! else: ! curses_libs = ['curses', 'termcap'] ! ! exts.append( Extension('_curses', ['_cursesmodule.c'], ! libraries = curses_libs) ) ! ! # If the curses module is enabled, check for the panel module ! if (module_enabled(exts, '_curses') and ! self.compiler.find_library_file(lib_dirs, 'panel')): ! exts.append( Extension('_curses_panel', ['_curses_panel.c'], ! libraries = ['panel'] + curses_libs) ) ! ! ! ! # Lee Busby's SIGFPE modules. ! # The library to link fpectl with is platform specific. ! # Choose *one* of the options below for fpectl: ! ! # Disabled; it's dangerous or useless except in the hands of experts. ! ## if platform == 'irix5': ! ## # For SGI IRIX (tested on 5.3): ! ## exts.append( Extension('fpectl', ['fpectlmodule.c'], ! ## libraries=['fpe']) ) ! ## elif 0: # XXX how to detect SunPro? ! ## # For Solaris with SunPro compiler (tested on Solaris 2.5 ! ## # with SunPro C 4.2): (Without the compiler you don't have ! ## # -lsunmath.) ! ## #fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm ! ## pass ! ## else: ! ## # For other systems: see instructions in fpectlmodule.c. ! ## #fpectl fpectlmodule.c ... ! ## exts.append( Extension('fpectl', ['fpectlmodule.c']) ) ! ! ! # Andrew Kuchling's zlib module. ! # This require zlib 1.1.3 (or later). ! # See http://www.cdrom.com/pub/infozip/zlib/ ! zlib_inc = find_file('zlib.h', [], inc_dirs) ! if zlib_inc is not None: ! zlib_h = zlib_inc[0] + '/zlib.h' ! version = '"0.0.0"' ! version_req = '"1.1.3"' ! fp = open(zlib_h) ! while 1: ! line = fp.readline() ! if not line: ! break ! if line.find('#define ZLIB_VERSION', 0) == 0: ! version = line.split()[2] ! break ! if version >= version_req: ! if (self.compiler.find_library_file(lib_dirs, 'z')): ! exts.append( Extension('zlib', ['zlibmodule.c'], ! libraries = ['z']) ) ! ! # Interface to the Expat XML parser ! # ! # Expat was written by James Clark and is now maintained by a ! # group of developers on SourceForge. The parser must be ! # downloaded separately (see below). The pyexpat module was ! # written by Paul Prescod after a prototype by Jack Jansen. ! # ! # The Expat dist includes Windows .lib and .dll files. The ! # home page for Expat is at http://www.libexpat.org/. Using ! # Expat version 1.95.2 or newer is recommended. ! # ! expat_defs = [] ! expat_incs = find_file('expat.h', inc_dirs, []) ! if expat_incs is not None: ! # expat.h was found ! expat_defs = [('HAVE_EXPAT_H', 1)] ! else: ! expat_incs = find_file('xmlparse.h', inc_dirs, []) ! ! if (expat_incs is not None and ! self.compiler.find_library_file(lib_dirs, 'expat')): ! exts.append( Extension('pyexpat', ['pyexpat.c'], ! define_macros = expat_defs, ! libraries = ['expat']) ) ! ! # Platform-specific libraries ! if platform == 'linux2': ! # Linux-specific modules ! exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) ! ! if platform == 'sunos5': ! # SunOS specific modules ! exts.append( Extension('sunaudiodev', ['sunaudiodev.c']) ) ! ! if platform == 'darwin': ! # Mac OS X specific modules. These are ported over from MacPython ! # and still experimental. Some (such as gestalt or icglue) are ! # already generally useful, some (the GUI ones) really need to ! # be used from a framework. ! # ! # I would like to trigger on WITH_NEXT_FRAMEWORK but that isn't ! # available here. This Makefile variable is also what the install ! # procedure triggers on. ! frameworkdir = sysconfig.get_config_var('PYTHONFRAMEWORKDIR') ! exts.append( Extension('gestalt', ['gestaltmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('MacOS', ['macosmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('icglue', ['icgluemodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('macfs', ! ['macfsmodule.c', ! '../Python/getapplbycreator.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_CF', ['cf/_CFmodule.c'], ! extra_link_args=['-framework', 'CoreFoundation']) ) ! exts.append( Extension('_Res', ['res/_Resmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Snd', ['snd/_Sndmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! if frameworkdir: ! exts.append( Extension('Nav', ['Nav.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_AE', ['ae/_AEmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_App', ['app/_Appmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_CarbonEvt', ['carbonevt/_CarbonEvtmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_CG', ['cg/_CGmodule.c'], ! extra_link_args=['-framework', 'ApplicationServices', ! '-framework', 'Carbon']) ) ! exts.append( Extension('_Cm', ['cm/_Cmmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Ctl', ['ctl/_Ctlmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Dlg', ['dlg/_Dlgmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Drag', ['drag/_Dragmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Evt', ['evt/_Evtmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Fm', ['fm/_Fmmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Icn', ['icn/_Icnmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_List', ['list/_Listmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Menu', ['menu/_Menumodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Mlte', ['mlte/_Mltemodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Qd', ['qd/_Qdmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Qdoffs', ['qdoffs/_Qdoffsmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_Qt', ['qt/_Qtmodule.c'], ! extra_link_args=['-framework', 'QuickTime', ! '-framework', 'Carbon']) ) ! exts.append( Extension('_Scrap', ['scrap/_Scrapmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! exts.append( Extension('_TE', ['te/_TEmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! # As there is no standardized place (yet) to put user-installed ! # Mac libraries on OSX you should put a symlink to your Waste ! # installation in the same folder as your python source tree. ! # Or modify the next two lines:-) ! waste_incs = find_file("WASTE.h", [], ["../waste/C_C++ Headers"]) ! waste_libs = find_library_file(self.compiler, "WASTE", [], ! ["../waste/Static Libraries"]) ! if waste_incs != None and waste_libs != None: ! exts.append( Extension('waste', ! ['waste/wastemodule.c', ! 'Mac/Wastemods/WEObjectHandlers.c', ! 'Mac/Wastemods/WETabHooks.c', ! 'Mac/Wastemods/WETabs.c' ! ], ! include_dirs = waste_incs + ['Mac/Wastemods'], ! library_dirs = waste_libs, ! libraries = ['WASTE'], ! extra_link_args = ['-framework', 'Carbon'], ! ) ) ! exts.append( Extension('_Win', ['win/_Winmodule.c'], ! extra_link_args=['-framework', 'Carbon']) ) ! ! self.extensions.extend(exts) ! ! # Call the method for detecting whether _tkinter can be compiled ! self.detect_tkinter(inc_dirs, lib_dirs) ! ! ! def detect_tkinter(self, inc_dirs, lib_dirs): ! # The _tkinter module. ! ! # Assume we haven't found any of the libraries or include files ! # The versions with dots are used on Unix, and the versions without ! # dots on Windows, for detection by cygwin. ! tcllib = tklib = tcl_includes = tk_includes = None ! for version in ['8.4', '84', '8.3', '83', '8.2', ! '82', '8.1', '81', '8.0', '80']: ! tklib = self.compiler.find_library_file(lib_dirs, ! 'tk' + version ) ! tcllib = self.compiler.find_library_file(lib_dirs, ! 'tcl' + version ) ! if tklib and tcllib: ! # Exit the loop when we've found the Tcl/Tk libraries ! break ! ! # Now check for the header files ! if tklib and tcllib: ! # Check for the include files on Debian, where ! # they're put in /usr/include/{tcl,tk}X.Y ! debian_tcl_include = [ '/usr/include/tcl' + version ] ! debian_tk_include = [ '/usr/include/tk' + version ] + \ ! debian_tcl_include ! tcl_includes = find_file('tcl.h', inc_dirs, debian_tcl_include) ! tk_includes = find_file('tk.h', inc_dirs, debian_tk_include) ! ! if (tcllib is None or tklib is None or ! tcl_includes is None or tk_includes is None): ! # Something's missing, so give up ! return ! ! # OK... everything seems to be present for Tcl/Tk. ! ! include_dirs = [] ; libs = [] ; defs = [] ; added_lib_dirs = [] ! for dir in tcl_includes + tk_includes: ! if dir not in include_dirs: ! include_dirs.append(dir) ! ! # Check for various platform-specific directories ! platform = self.get_platform() ! if platform == 'sunos5': ! include_dirs.append('/usr/openwin/include') ! added_lib_dirs.append('/usr/openwin/lib') ! elif os.path.exists('/usr/X11R6/include'): ! include_dirs.append('/usr/X11R6/include') ! added_lib_dirs.append('/usr/X11R6/lib') ! elif os.path.exists('/usr/X11R5/include'): ! include_dirs.append('/usr/X11R5/include') ! added_lib_dirs.append('/usr/X11R5/lib') ! else: ! # Assume default location for X11 ! include_dirs.append('/usr/X11/include') ! added_lib_dirs.append('/usr/X11/lib') ! ! # If Cygwin, then verify that X is installed before proceeding ! if platform == 'cygwin': ! x11_inc = find_file('X11/Xlib.h', [], inc_dirs) ! if x11_inc is None: ! # X header files missing, so give up ! return ! ! # Check for BLT extension ! if self.compiler.find_library_file(lib_dirs + added_lib_dirs, ! 'BLT8.0'): ! defs.append( ('WITH_BLT', 1) ) ! libs.append('BLT8.0') ! ! # Add the Tcl/Tk libraries ! libs.append('tk'+version) ! libs.append('tcl'+version) ! ! if platform in ['aix3', 'aix4']: ! libs.append('ld') ! ! # Finally, link with the X11 libraries (not appropriate on cygwin) ! if platform != "cygwin": ! libs.append('X11') ! ! ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], ! define_macros=[('WITH_APPINIT', 1)] + defs, ! include_dirs = include_dirs, ! libraries = libs, ! library_dirs = added_lib_dirs, ! ) ! self.extensions.append(ext) ! ! # XXX handle these, but how to detect? ! # *** Uncomment and edit for PIL (TkImaging) extension only: ! # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ ! # *** Uncomment and edit for TOGL extension only: ! # -DWITH_TOGL togl.c \ ! # *** Uncomment these for TOGL extension only: ! # -lGL -lGLU -lXext -lXmu \ ! ! class PyBuildInstall(install): ! # Suppress the warning about installation into the lib_dynload ! # directory, which is not in sys.path when running Python during ! # installation: ! def initialize_options (self): ! install.initialize_options(self) ! self.warn_dir=0 ! ! def main(): ! # turn off warnings when deprecated modules are imported ! import warnings ! warnings.filterwarnings("ignore",category=DeprecationWarning) ! setup(name = 'Python standard library', ! version = '%d.%d' % sys.version_info[:2], ! cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall}, ! # The struct module is defined here, because build_ext won't be ! # called unless there's at least one extension module defined. ! ext_modules=[Extension('struct', ['structmodule.c'])], ! ! # Scripts to install ! scripts = ['Tools/scripts/pydoc'] ! ) ! # --install-platlib ! if __name__ == '__main__': ! main() --- 1,18 ---- ! from distutils.core import setup ! setup( ! scripts=[ ! 'byteyears.py', ! 'checkpyc.py', ! 'copytime.py', ! 'crlf.py', ! 'dutree.py', ! 'ftpmirror.py', ! 'h2py.py', ! 'lfcr.py', ! 'logmerge.py', ! '../../Lib/tabnanny.py', ! '../../Lib/timeit.py', ! 'untabify.py', ! ], ! ) _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:43 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:43 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Python getversion.c, 1.3, 1.4 pystate.c, 1.8, 1.9 pythonrun.c, 1.9, 1.10 sysmodule.c, 1.7, 1.8 thread_pthread.h, 1.2, 1.3 traceback.c, 1.7, 1.8 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Python In directory centera.de:/home/tismer/slpdev/src/2.2/src/Python Modified Files: getversion.c pystate.c pythonrun.c sysmodule.c thread_pthread.h traceback.c Log Message: hopefully this is now a base version Index: getversion.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/getversion.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** getversion.c 11 Jul 2002 20:52:41 -0000 1.3 --- getversion.c 1 May 2004 00:44:39 -0000 1.4 *************** *** 6,24 **** #include "patchlevel.h" - #ifdef STACKLESS - /* avoiding to recompile everything for Stackless all the time */ - #include "stackless_version.h" - - const char * - Py_GetVersion(void) - { - static char version[250]; - PyOS_snprintf(version, sizeof(version), "%.80s Stackless %.80s (%.80s) %.80s", - PY_VERSION, STACKLESS_VERSION, Py_GetBuildInfo(), Py_GetCompiler()); - return version; - } - - #else - const char * Py_GetVersion(void) --- 6,9 ---- *************** *** 29,32 **** return version; } - - #endif --- 14,15 ---- Index: pystate.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/pystate.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** pystate.c 6 Jan 2004 02:40:23 -0000 1.8 --- pystate.c 1 May 2004 00:44:39 -0000 1.9 *************** *** 38,41 **** --- 38,42 ---- unaryfunc _PyThreadState_GetFrame = NULL; + PyInterpreterState * PyInterpreterState_New(void) *************** *** 157,163 **** tstate->c_profileobj = NULL; tstate->c_traceobj = NULL; ! #ifdef STACKLESS ! STACKLESS_PYSTATE_NEW; ! #endif HEAD_LOCK(); tstate->next = interp->tstate_head; --- 158,162 ---- tstate->c_profileobj = NULL; tstate->c_traceobj = NULL; ! HEAD_LOCK(); tstate->next = interp->tstate_head; *************** *** 173,181 **** PyThreadState_Clear(PyThreadState *tstate) { ! #ifdef STACKLESS ! STACKLESS_PYSTATE_ZAP; ! #endif ! ! if (Py_VerboseFlag && tstate->frame != NULL) fprintf(stderr, "PyThreadState_Clear: warning: thread still has a frame\n"); --- 172,176 ---- PyThreadState_Clear(PyThreadState *tstate) { ! if (Py_VerboseFlag && tstate->frame != NULL) fprintf(stderr, "PyThreadState_Clear: warning: thread still has a frame\n"); Index: pythonrun.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/pythonrun.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** pythonrun.c 6 Jan 2004 02:40:23 -0000 1.9 --- pythonrun.c 1 May 2004 00:44:39 -0000 1.10 *************** *** 14,21 **** #include "marshal.h" - #ifdef STACKLESS - #include "stackless_impl.h" - #endif - #ifdef HAVE_SIGNAL_H #include --- 14,17 ---- *************** *** 132,139 **** _Py_ReadyTypes(); - #ifdef STACKLESS - _PyStackless_InitTypes(); - #endif - interp->modules = PyDict_New(); if (interp->modules == NULL) --- 128,131 ---- *************** *** 161,167 **** interp->modules); - #ifdef STACKLESS - _PyStackless_Init(); - #endif _PyImport_Init(); --- 153,156 ---- *************** *** 217,223 **** */ call_sys_exitfunc(); - #ifdef STACKLESS - PyStackless_kill_tasks_with_stacks(); - #endif initialized = 0; --- 206,209 ---- *************** *** 269,279 **** PyInt_Fini(); PyFloat_Fini(); #ifdef Py_USING_UNICODE /* Cleanup Unicode implementation */ _PyUnicode_Fini(); #endif - #ifdef STACKLESS - PyStacklessEval_Fini(); - #endif /* XXX Still allocated: --- 255,263 ---- PyInt_Fini(); PyFloat_Fini(); + #ifdef Py_USING_UNICODE /* Cleanup Unicode implementation */ _PyUnicode_Fini(); #endif /* XXX Still allocated: Index: sysmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/sysmodule.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** sysmodule.c 29 Dec 2003 01:38:30 -0000 1.7 --- sysmodule.c 1 May 2004 00:44:39 -0000 1.8 *************** *** 254,262 **** int what, PyObject *arg) { ! #ifdef STACKLESS ! register PyThreadState *tstate = PyThreadState_GET(); ! #else ! register PyThreadState *tstate = frame->f_tstate; ! #endif PyObject *result; --- 254,258 ---- int what, PyObject *arg) { ! PyThreadState *tstate = frame->f_tstate; PyObject *result; *************** *** 276,284 **** int what, PyObject *arg) { ! #ifdef STACKLESS ! register PyThreadState *tstate = PyThreadState_GET(); ! #else ! register PyThreadState *tstate = frame->f_tstate; ! #endif PyObject *callback; PyObject *result; --- 272,276 ---- int what, PyObject *arg) { ! PyThreadState *tstate = frame->f_tstate; PyObject *callback; PyObject *result; Index: thread_pthread.h =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/thread_pthread.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** thread_pthread.h 21 Aug 2003 16:59:17 -0000 1.2 --- thread_pthread.h 1 May 2004 00:44:39 -0000 1.3 *************** *** 214,220 **** #if defined(PY_PTHREAD_D4) || defined(PY_PTHREAD_D6) || defined(PY_PTHREAD_D7) ! pthread_detach(&th); #elif defined(PY_PTHREAD_STD) ! pthread_detach(th); #endif --- 214,220 ---- #if defined(PY_PTHREAD_D4) || defined(PY_PTHREAD_D6) || defined(PY_PTHREAD_D7) ! pthread_detach(&th); #elif defined(PY_PTHREAD_STD) ! pthread_detach(th); #endif Index: traceback.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Python/traceback.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** traceback.c 29 Dec 2003 01:38:30 -0000 1.7 --- traceback.c 1 May 2004 00:44:39 -0000 1.8 *************** *** 15,120 **** int tb_lasti; int tb_lineno; - #ifdef STACKLESS - int tb_is_head; /* helper for pickling */ - #endif } tracebackobject; #define OFF(x) offsetof(tracebackobject, x) - #ifdef STACKLESS - - static PyMemberDef tb_memberlist[] = { - {"tb_next", T_OBJECT, OFF(tb_next), RO}, - {"tb_frame", T_OBJECT, OFF(tb_frame), RO}, - {"tb_lasti", T_INT, OFF(tb_lasti), RO}, - {"tb_lineno", T_INT, OFF(tb_lineno), RO}, - {NULL} /* Sentinel */ - }; - - static PyObject * - tb_reduce(tracebackobject * tb) - { - PyObject *tup = NULL, *lis; - tracebackobject *tb_next; - if (!tb->tb_is_head) { - tup = Py_BuildValue("(O(Oii))", - &PyTraceBack_Type, - tb->tb_frame, tb->tb_lasti, tb->tb_lineno); - if (tup == NULL) return NULL; - return tup; - } - lis = PyList_New(0); - if (lis == NULL) return NULL; - tb_next = tb->tb_next; - while (tb_next != NULL) { - if (PyList_Append(lis, (PyObject *) tb_next)) - goto err_exit; - tb_next = tb_next->tb_next; - } - - tup = Py_BuildValue("(O(OiiO))", - &PyTraceBack_Type, - tb->tb_frame, tb->tb_lasti, tb->tb_lineno, - lis); - - err_exit: - Py_XDECREF(lis); - return tup; - } - - static PyMethodDef tb_methodlist[] = { - {"__reduce__", (PyCFunction)tb_reduce, METH_NOARGS, NULL}, - {NULL, NULL} - }; - - static tracebackobject * - newtracebackobject(tracebackobject *next, PyFrameObject *frame, int lasti, - int lineno); - - static - PyObject * - traceback_new(PyTypeObject *type, PyObject *args, PyObject *kwds) - { - tracebackobject *tb; - PyFrameObject *frame; - int lasti, lineno; - PyObject *lis = NULL; - - if (kwds != NULL) { - PyErr_SetString(PyExc_ValueError, "Keyword parameters not supported for traceback_new"); - return NULL; - } - if (!PyArg_ParseTuple(args, "O!ii|O!:traceback", - PyBaseFrame_Type, &frame, - &lasti, &lineno, - &PyList_Type, &lis)) - return NULL; - - tb = newtracebackobject(NULL, frame, lasti, lineno); - if (tb == NULL) - return NULL; - - if (lis != NULL) { - int i; - tracebackobject *tb_curr = tb, *tb_next; - for (i=0; i < PyList_GET_SIZE(lis); ++i) { - tb_next = (tracebackobject *) PyList_GET_ITEM(lis, i); - if (!PyTraceBack_Check(tb_next)) { - PyErr_SetString(PyExc_TypeError, - "list of tracebacks expected in traceback()"); - Py_DECREF(tb); - return NULL; - } - tb_curr->tb_next = tb_next; - tb_curr = tb_next; - Py_INCREF(tb_next); - } - tb->tb_is_head = 1; - } - return (PyObject *) tb; - } - - #else - static struct memberlist tb_memberlist[] = { {"tb_next", T_OBJECT, OFF(tb_next)}, --- 15,22 ---- *************** *** 130,134 **** return PyMember_Get((char *)tb, tb_memberlist, name); } - #endif static void --- 32,35 ---- *************** *** 174,182 **** (destructor)tb_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ - #ifdef STACKLESS - 0, - #else (getattrfunc)tb_getattr, /*tp_getattr*/ - #endif 0, /*tp_setattr*/ 0, /*tp_compare*/ --- 75,79 ---- *************** *** 188,196 **** 0, /* tp_call */ 0, /* tp_str */ - #ifdef STACKLESS - PyObject_GenericGetAttr, - #else 0, /* tp_getattro */ - #endif 0, /* tp_setattro */ 0, /* tp_as_buffer */ --- 85,89 ---- *************** *** 203,224 **** 0, /* tp_iter */ 0, /* tp_iternext */ - #ifdef STACKLESS - tb_methodlist, /* tp_methods */ - tb_memberlist, /* tp_members */ - #else 0, /* tp_methods */ ! 0, /* tp_members */ ! #endif ! 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ - #ifdef STACKLESS - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - traceback_new, /* tp_new */ - #endif }; --- 96,104 ---- 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ ! 0, /* tp_members */ ! 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ }; *************** *** 241,247 **** tb->tb_lasti = lasti; tb->tb_lineno = lineno; - #ifdef STACKLESS - tb->tb_is_head = 0; - #endif _PyObject_GC_TRACK(tb); } --- 121,124 ---- *************** *** 252,260 **** PyTraceBack_Here(PyFrameObject *frame) { ! #ifdef STACKLESS ! register PyThreadState *tstate = PyThreadState_GET(); ! #else ! register PyThreadState *tstate = frame->f_tstate; ! #endif tracebackobject *oldtb = (tracebackobject *) tstate->curexc_traceback; tracebackobject *tb = newtracebackobject(oldtb, --- 129,133 ---- PyTraceBack_Here(PyFrameObject *frame) { ! PyThreadState *tstate = frame->f_tstate; tracebackobject *oldtb = (tracebackobject *) tstate->curexc_traceback; tracebackobject *tb = newtracebackobject(oldtb, *************** *** 263,275 **** return -1; tstate->curexc_traceback = (PyObject *)tb; - #ifdef STACKLESS - if (oldtb != NULL) { - oldtb->tb_is_head = 0; - tb->tb_is_head = 1; - Py_DECREF(oldtb); - } - #else Py_XDECREF(oldtb); - #endif return 0; } --- 136,140 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:34 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:34 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Doc/html about.dat, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Doc/html In directory centera.de:/home/tismer/slpdev/src/2.2/src/Doc/html Modified Files: about.dat Log Message: hopefully this is now a base version Index: about.dat =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Doc/html/about.dat,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** about.dat 30 Apr 2004 22:11:26 -0000 1.2 --- about.dat 1 May 2004 00:44:32 -0000 1.3 *************** *** 1,24 **** !

This document was generated using the ! LaTeX2HTML translator. !

! !

! LaTeX2HTML is Copyright © ! 1993, 1994, 1995, 1996, 1997, Nikos ! Drakos, Computer Based Learning Unit, University of ! Leeds, and Copyright © 1997, 1998, Ross ! Moore, Mathematics Department, Macquarie University, ! Sydney. !

! !

The application of ! LaTeX2HTML to the Python ! documentation has been heavily tailored by Fred L. Drake, ! Jr. Original navigation icons were contributed by Christopher ! Petrilli. !

--- 1,24 ---- !

This document was generated using the ! LaTeX2HTML translator. !

! !

! LaTeX2HTML is Copyright © ! 1993, 1994, 1995, 1996, 1997, Nikos ! Drakos, Computer Based Learning Unit, University of ! Leeds, and Copyright © 1997, 1998, Ross ! Moore, Mathematics Department, Macquarie University, ! Sydney. !

! !

The application of ! LaTeX2HTML to the Python ! documentation has been heavily tailored by Fred L. Drake, ! Jr. Original navigation icons were contributed by Christopher ! Petrilli. !

_______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:14 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:14 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Modules Setup.dist, 1.11, 1.12 cPickle.c, 1.7, 1.8 socketmodule.c, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Modules In directory centera.de:/tmp/cvs-serv18709/src/Modules Modified Files: Setup.dist cPickle.c socketmodule.c Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: Setup.dist =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Modules/Setup.dist,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Setup.dist 1 May 2004 00:44:34 -0000 1.11 --- Setup.dist 1 May 2004 01:21:10 -0000 1.12 *************** *** 461,462 **** --- 461,467 ---- # Another example -- the 'xxsubtype' module shows C-level subtyping in action xxsubtype xxsubtype.c + + # uncomment if you'd like to compile stackless statically. + # Note that the static build puts the .o files into Modules. + #SLP=./Stackless + #stackless $(SLP)/stacklessmodule.c $(SLP)/atomicobject.c $(SLP)/cframeobject.c $(SLP)/channelobject.c $(SLP)/flextype.c $(SLP)/scheduling.c $(SLP)/schedulerobject.c $(SLP)/stackless_debug.c $(SLP)/stackless_util.c $(SLP)/taskletobject.c Index: cPickle.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Modules/cPickle.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** cPickle.c 30 Apr 2004 22:11:26 -0000 1.7 --- cPickle.c 1 May 2004 01:21:10 -0000 1.8 *************** *** 8,11 **** --- 8,12 ---- #include "cStringIO.h" #include "structmember.h" + #include "core/stackless_impl.h" #ifndef Py_eval_input *************** *** 256,259 **** --- 257,261 ---- typedef struct Picklerobject { + <<<<<<< ../../2.2/src/./Modules/cPickle.c PyObject_HEAD FILE *fp; *************** *** 273,276 **** --- 275,306 ---- int fast_container; /* count nested container dumps */ PyObject *fast_memo; + ======= + PyObject_HEAD + FILE *fp; + PyObject *write; + PyObject *file; + PyObject *memo; + PyObject *arg; + PyObject *pers_func; + PyObject *inst_pers_func; + + /* pickle protocol number, >= 0 */ + int proto; + + /* bool, true if proto > 0 */ + int bin; + + int fast; /* Fast mode doesn't save in memo, don't use if circ ref */ + int nesting; + int (*write_func)(struct Picklerobject *, char *, int); + char *write_buf; + int buf_size; + PyObject *dispatch_table; + int fast_container; /* count nested container dumps */ + PyObject *fast_memo; + #ifdef STACKLESS + PyObject *module_dict_ids; + #endif + >>>>>>> ././Modules/cPickle.c } Picklerobject; *************** *** 1501,1505 **** --- 1531,1554 ---- } + <<<<<<< ../../2.2/src/./Modules/cPickle.c res = 0; + ======= + #ifdef STACKLESS + { + static int + save_reduce(Picklerobject *self, PyObject *args, PyObject *ob); + PyObject *ret = PyStackless_Pickle_ModuleDict((PyObject *) self, args); + if (ret == NULL) return -1; + if (ret != Py_None) { + res = save_reduce(self, ret, args); + Py_DECREF(ret); + return res; + } + Py_DECREF(ret); + } + #endif + if (self->fast && !fast_save_enter(self, args)) + goto finally; + >>>>>>> ././Modules/cPickle.c finally: *************** *** 1817,1820 **** --- 1866,1870 ---- static int + <<<<<<< ../../2.2/src/./Modules/cPickle.c save(Picklerobject *self, PyObject *args, int pers_save) { PyTypeObject *type; *************** *** 1828,1831 **** --- 1878,1903 ---- goto finally; } + ======= + save(Picklerobject *self, PyObject *args, int pers_save) + { + PyTypeObject *type; + PyObject *py_ob_id = 0, *__reduce__ = 0, *t = 0; + PyObject *arg_tup; + int res = -1; + int tmp, size; + + #ifdef STACKLESS + if (++self->nesting % 20 == 0){ + res = slp_safe_pickling((void *)&save, (PyObject *)self, args, pers_save); + goto finally; + } + #else + if (self->nesting++ > Py_GetRecursionLimit()){ + PyErr_SetString(PyExc_RuntimeError, + "maximum recursion depth exceeded"); + goto finally; + } + #endif + >>>>>>> ././Modules/cPickle.c if (!pers_save && self->pers_func) { *************** *** 1958,1961 **** --- 2030,2034 ---- case 'f': + <<<<<<< ../../2.2/src/./Modules/cPickle.c if (type == &PyFunction_Type) { res = save_global(self, args, NULL); *************** *** 1963,1966 **** --- 2036,2051 ---- } break; + ======= + if (type == &PyFunction_Type) { + res = save_global(self, args, NULL); + if (res && PyErr_ExceptionMatches(PickleError)) { + /* fall back to reduce */ + PyErr_Clear(); + break; + } + goto finally; + } + break; + >>>>>>> ././Modules/cPickle.c case 'b': *************** *** 2252,2257 **** --- 2337,2445 ---- static Picklerobject * + <<<<<<< ../../2.2/src/./Modules/cPickle.c newPicklerobject(PyObject *file, int bin) { Picklerobject *self; + ======= + newPicklerobject(PyObject *file, int proto) + { + Picklerobject *self; + + if (proto < 0) + proto = HIGHEST_PROTOCOL; + if (proto > HIGHEST_PROTOCOL) { + PyErr_Format(PyExc_ValueError, "pickle protocol %d asked for; " + "the highest available protocol is %d", + proto, HIGHEST_PROTOCOL); + return NULL; + } + + self = PyObject_GC_New(Picklerobject, &Picklertype); + if (self == NULL) + return NULL; + self->proto = proto; + self->bin = proto > 0; + self->fp = NULL; + self->write = NULL; + self->memo = NULL; + self->arg = NULL; + self->pers_func = NULL; + self->inst_pers_func = NULL; + self->write_buf = NULL; + self->fast = 0; + self->nesting = 0; + self->fast_container = 0; + self->fast_memo = NULL; + self->buf_size = 0; + self->dispatch_table = NULL; + #ifdef STACKLESS + self->module_dict_ids = NULL; + #endif + + self->file = NULL; + if (file) + Py_INCREF(file); + else { + file = Pdata_New(); + if (file == NULL) + goto err; + } + self->file = file; + + if (!( self->memo = PyDict_New())) + goto err; + + if (PyFile_Check(file)) { + self->fp = PyFile_AsFile(file); + if (self->fp == NULL) { + PyErr_SetString(PyExc_ValueError, + "I/O operation on closed file"); + goto err; + } + self->write_func = write_file; + } + else if (PycStringIO_OutputCheck(file)) { + self->write_func = write_cStringIO; + } + else if (file == Py_None) { + self->write_func = write_none; + } + else { + self->write_func = write_other; + + if (! Pdata_Check(file)) { + self->write = PyObject_GetAttr(file, write_str); + if (!self->write) { + PyErr_Clear(); + PyErr_SetString(PyExc_TypeError, + "argument must have 'write' " + "attribute"); + goto err; + } + } + + self->write_buf = (char *)PyMem_Malloc(WRITE_BUF_SIZE); + if (self->write_buf == NULL) { + PyErr_NoMemory(); + goto err; + } + } + + if (PyEval_GetRestricted()) { + /* Restricted execution, get private tables */ + PyObject *m = PyImport_Import(copy_reg_str); + + if (m == NULL) + goto err; + self->dispatch_table = PyObject_GetAttr(m, dispatch_table_str); + Py_DECREF(m); + if (self->dispatch_table == NULL) + goto err; + } + else { + self->dispatch_table = dispatch_table; + Py_INCREF(dispatch_table); + } + PyObject_GC_Track(self); + >>>>>>> ././Modules/cPickle.c UNLESS (self = PyObject_GC_New(Picklerobject, &Picklertype)) *************** *** 2355,2358 **** --- 2543,2547 ---- static void + <<<<<<< ../../2.2/src/./Modules/cPickle.c Pickler_dealloc(Picklerobject *self) { PyObject_GC_UnTrack(self); *************** *** 2371,2374 **** --- 2560,2581 ---- self->ob_type->tp_free((PyObject *)self); + ======= + Pickler_dealloc(Picklerobject *self) + { + PyObject_GC_UnTrack(self); + Py_XDECREF(self->write); + Py_XDECREF(self->memo); + Py_XDECREF(self->fast_memo); + Py_XDECREF(self->arg); + Py_XDECREF(self->file); + Py_XDECREF(self->pers_func); + Py_XDECREF(self->inst_pers_func); + Py_XDECREF(self->dispatch_table); + PyMem_Free(self->write_buf); + #ifdef STACKLESS + Py_XDECREF(self->module_dict_ids); + #endif + self->ob_type->tp_free((PyObject *)self); + >>>>>>> ././Modules/cPickle.c } *************** *** 2391,2394 **** --- 2598,2604 ---- VISIT(self->inst_pers_func); VISIT(self->dispatch_table); + #ifdef STACKLESS + VISIT(self->module_dict_ids); + #endif #undef VISIT return 0; *************** *** 2407,2410 **** --- 2617,2623 ---- CLEAR(self->inst_pers_func); CLEAR(self->dispatch_table); + #ifdef STACKLESS + CLEAR(self->module_dict_ids); + #endif #undef CLEAR return 0; *************** *** 2477,2480 **** --- 2690,2723 ---- } + #ifdef STACKLESS + static PyObject * + Pickler_get_module_dict_ids(Picklerobject *p) + { + if (p->module_dict_ids == NULL) + PyErr_SetString(PyExc_AttributeError, "module_dict_ids"); + else + Py_INCREF(p->module_dict_ids); + return p->module_dict_ids; + } + + static int + Pickler_set_module_dict_ids(Picklerobject *p, PyObject *v) + { + if (v == NULL) { + PyErr_SetString(PyExc_TypeError, + "attribute deletion is not supported"); + return -1; + } + if (!PyDict_Check(v)) { + PyErr_SetString(PyExc_TypeError, "module-dict-ids must be a dictionary"); + return -1; + } + Py_XDECREF(p->module_dict_ids); + Py_INCREF(v); + p->module_dict_ids = v; + return 0; + } + #endif + static PyObject * Pickler_get_error(Picklerobject *p) *************** *** 2497,2500 **** --- 2740,2746 ---- {"memo", (getter)Pickler_get_memo, (setter)Pickler_set_memo}, {"PicklingError", (getter)Pickler_get_error, NULL}, + #ifdef STACKLESS + {"module_dict_ids", (getter)Pickler_get_module_dict_ids, (setter)Pickler_set_module_dict_ids}, + #endif {NULL} }; Index: socketmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Modules/socketmodule.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** socketmodule.c 21 Aug 2003 16:59:16 -0000 1.2 --- socketmodule.c 1 May 2004 01:21:10 -0000 1.3 *************** *** 148,151 **** --- 148,156 ---- #endif + /* This declaration is required for HPUX 10 */ + #if defined(__hpux) && !defined(h_errno) + extern int h_errno; + #endif + /* Headers needed for inet_ntoa() and inet_addr() */ #ifdef __BEOS__ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Fri May 7 15:21:11 2004 From: tismer at centera.de (Christian Tismer) Date: Fri, 07 May 2004 15:21:11 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Stackless/module scheduling.c, 1.92, 1.93 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Stackless/module In directory centera.de:/tmp/cvs-serv18368/src/Stackless/module Modified Files: scheduling.c Log Message: generalized tasklet_end: Every subclass of SystemExit is now not propagated as an error. Index: scheduling.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Stackless/module/scheduling.c,v retrieving revision 1.92 retrieving revision 1.93 diff -C2 -d -r1.92 -r1.93 *** scheduling.c 29 Apr 2004 17:58:59 -0000 1.92 --- scheduling.c 7 May 2004 13:21:09 -0000 1.93 *************** *** 453,457 **** task->recursion_depth = 0; ! /* Deallocation might cause stack switches during tasklet_end! * Therefore, we need to stay reentrant and keep current alive. * The runner frame exists only once, unfortunately. --- 453,458 ---- task->recursion_depth = 0; ! /* ! * Deallocation might cause stack switches during tasklet_end! * Therefore, we need to stay reentrant and keep current alive. * The runner frame exists only once, unfortunately. *************** *** 461,468 **** ts->frame = task->topframe; ! /* see whether we have a TaskletExit, which is no error */ if (retval == NULL && PyErr_Occurred() && ! PyErr_ExceptionMatches(PyExc_TaskletExit)) { PyErr_Clear(); Py_INCREF(Py_None); --- 462,472 ---- ts->frame = task->topframe; ! /* ! * see whether we have a SystemExit, which is no error. ! * Note that TaskletExit is a subclass. ! */ if (retval == NULL && PyErr_Occurred() && ! PyErr_ExceptionMatches(PyExc_SystemExit)) { PyErr_Clear(); Py_INCREF(Py_None); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:47 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:47 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/PCbuild _bsddb.vcproj, NONE, 1.1 _socket.vcproj, NONE, 1.1 _ssl.mak, NONE, 1.1 _ssl.vcproj, NONE, 1.1 _testcapi.vcproj, NONE, 1.1 _tkinter.vcproj, NONE, 1.1 build_ssl.py, NONE, 1.1 bz2.vcproj, NONE, 1.1 field3.py, 1.2, 1.3 make_versioninfo.vcproj, NONE, 1.1 pcbuild.sln, NONE, 1.1 pyexpat.vcproj, NONE, 1.1 python.vcproj, NONE, 1.1 pythoncore.vcproj, NONE, 1.1 pythonw.vcproj, NONE, 1.1 select.vcproj, NONE, 1.1 unicodedata.vcproj, NONE, 1.1 w9xpopen.vcproj, NONE, 1.1 winsound.vcproj, NONE, 1.1 zlib.vcproj, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/PCbuild In directory centera.de:/home/tismer/slpdev/src/2.2/src/PCbuild Added Files: _bsddb.vcproj _socket.vcproj _ssl.mak _ssl.vcproj _testcapi.vcproj _tkinter.vcproj build_ssl.py bz2.vcproj field3.py make_versioninfo.vcproj pcbuild.sln pyexpat.vcproj python.vcproj pythoncore.vcproj pythonw.vcproj select.vcproj unicodedata.vcproj w9xpopen.vcproj winsound.vcproj zlib.vcproj Log Message: added files --- NEW FILE: _bsddb.vcproj --- --- NEW FILE: _socket.vcproj --- --- NEW FILE: _ssl.mak --- !IFDEF DEBUG MODULE=_ssl_d.pyd TEMP_DIR=x86-temp-debug/_ssl CFLAGS=/Od /Zi /MDd /LDd /DDEBUG /D_DEBUG SSL_LIB_DIR=$(SSL_DIR)/out32.dbg !ELSE MODULE=_ssl.pyd TEMP_DIR=x86-temp-release/_ssl CFLAGS=/Ox /MD /LD SSL_LIB_DIR=$(SSL_DIR)/out32 !ENDIF INCLUDES=-I ../Include -I ../PC -I $(SSL_DIR)/inc32 LIBS=gdi32.lib wsock32.lib /libpath:$(SSL_LIB_DIR) libeay32.lib ssleay32.lib SOURCE=../Modules/_ssl.c $(SSL_LIB_DIR)/libeay32.lib $(SSL_LIB_DIR)/ssleay32.lib $(MODULE): $(SOURCE) ../PC/*.h ../Include/*.h @if not exist "$(TEMP_DIR)/." mkdir "$(TEMP_DIR)" cl /nologo $(SOURCE) $(CFLAGS) /Fo$(TEMP_DIR)\$*.obj $(INCLUDES) /link /out:$(MODULE) $(LIBS) --- NEW FILE: _ssl.vcproj --- --- NEW FILE: _testcapi.vcproj --- --- NEW FILE: _tkinter.vcproj --- --- NEW FILE: build_ssl.py --- # Script for building the _ssl module for Windows. # Uses Perl to setup the OpenSSL environment correctly # and build OpenSSL, then invokes a simple nmake session # for _ssl.pyd itself. # THEORETICALLY, you can: # * Unpack the latest SSL release one level above your main Python source # directory. It is likely you will already find the zlib library and # any other external packages there. # * Install ActivePerl and ensure it is somewhere on your path. # * Run this script from the PCBuild directory. # # it should configure and build SSL, then build the ssl Python extension # without intervention. import os, sys, re # Find all "foo.exe" files on the PATH. def find_all_on_path(filename, extras = None): entries = os.environ["PATH"].split(os.pathsep) ret = [] for p in entries: fname = os.path.abspath(os.path.join(p, filename)) if os.path.isfile(fname) and fname not in ret: ret.append(fname) if extras: for p in extras: fname = os.path.abspath(os.path.join(p, filename)) if os.path.isfile(fname) and fname not in ret: ret.append(fname) return ret # Find a suitable Perl installation for OpenSSL. # cygwin perl does *not* work. ActivePerl does. # Being a Perl dummy, the simplest way I can check is if the "Win32" package # is available. def find_working_perl(perls): for perl in perls: fh = os.popen(perl + ' -e "use Win32;"') fh.read() rc = fh.close() if rc: continue return perl print "Can not find a suitable PERL:" if perls: print " the following perl interpreters were found:" for p in perls: print " ", p print " None of these versions appear suitable for building OpenSSL" else: print " NO perl interpreters were found on this machine at all!" print " Please install ActivePerl and ensure it appears on your path" print "The Python SSL module was not built" return None # Locate the best SSL directory given a few roots to look into. def find_best_ssl_dir(sources): candidates = [] for s in sources: try: s = os.path.abspath(s) fnames = os.listdir(s) except os.error: fnames = [] for fname in fnames: fqn = os.path.join(s, fname) if os.path.isdir(fqn) and fname.startswith("openssl-"): candidates.append(fqn) # Now we have all the candidates, locate the best. best_parts = [] best_name = None for c in candidates: parts = re.split("[.-]", os.path.basename(c))[1:] # eg - openssl-0.9.7-beta1 - ignore all "beta" or any other qualifiers if len(parts) >= 4: continue if parts > best_parts: best_parts = parts best_name = c if best_name is not None: print "Found an SSL directory at '%s'" % (best_name,) else: print "Could not find an SSL directory in '%s'" % (sources,) return best_name def main(): debug = "-d" in sys.argv build_all = "-a" in sys.argv make_flags = "" if build_all: make_flags = "-a" # perl should be on the path, but we also look in "\perl" and "c:\\perl" # as "well known" locations perls = find_all_on_path("perl.exe", ["\\perl\\bin", "C:\\perl\\bin"]) perl = find_working_perl(perls) if perl is None: sys.exit(1) print "Found a working perl at '%s'" % (perl,) # Look for SSL 2 levels up from pcbuild - ie, same place zlib etc all live. ssl_dir = find_best_ssl_dir(("../..",)) if ssl_dir is None: sys.exit(1) old_cd = os.getcwd() try: os.chdir(ssl_dir) # If the ssl makefiles do not exist, we invoke Perl to generate them. if not os.path.isfile(os.path.join(ssl_dir, "32.mak")) or \ not os.path.isfile(os.path.join(ssl_dir, "d32.mak")): print "Creating the makefiles..." # Put our working Perl at the front of our path os.environ["PATH"] = os.path.split(perl)[0] + \ os.pathsep + \ os.environ["PATH"] # ms\32all.bat will reconfigure OpenSSL and then try to build # all outputs (debug/nondebug/dll/lib). So we filter the file # to exclude any "nmake" commands and then execute. tempname = "ms\\32all_py.bat" in_bat = open("ms\\32all.bat") temp_bat = open(tempname,"w") while 1: cmd = in_bat.readline() print 'cmd', repr(cmd) if not cmd: break if cmd.strip()[:5].lower() == "nmake": continue temp_bat.write(cmd) in_bat.close() temp_bat.close() os.system(tempname) try: os.remove(tempname) except: pass # Now run make. print "Executing nmake over the ssl makefiles..." if debug: rc = os.system("nmake /nologo -f d32.mak") if rc: print "Executing d32.mak failed" print rc sys.exit(rc) else: rc = os.system("nmake /nologo -f 32.mak") if rc: print "Executing 32.mak failed" print rc sys.exit(rc) finally: os.chdir(old_cd) # And finally, we can build the _ssl module itself for Python. defs = "SSL_DIR=%s" % (ssl_dir,) if debug: defs = defs + " " + "DEBUG=1" rc = os.system('nmake /nologo -f _ssl.mak ' + defs + " " + make_flags) sys.exit(rc) if __name__=='__main__': main() --- NEW FILE: bz2.vcproj --- --- NEW FILE: make_versioninfo.vcproj --- --- NEW FILE: pcbuild.sln --- Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{E1DBB220-D64B-423D-A545-539A55AA7FE2}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}" ProjectSection(ProjectDependencies) = postProject {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{59CBF474-9E06-4C50-9142-C44A118BB447}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{AC557788-6354-43F7-BE05-C9C8C59A344A}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" ProjectSection(ProjectDependencies) = postProject {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{51F35FAE-FB92-4B2C-9187-1542C065AD77}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib.vcproj", "{680CDC79-9CCA-4282-9A8D-927CB0DB55B2}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.ActiveCfg = Debug|Win32 {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.Build.0 = Debug|Win32 {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.ActiveCfg = Release|Win32 {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.Build.0 = Release|Win32 {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.ActiveCfg = Debug|Win32 {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.Build.0 = Debug|Win32 {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.ActiveCfg = Release|Win32 {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.Build.0 = Release|Win32 {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.ActiveCfg = Debug|Win32 {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.Build.0 = Debug|Win32 {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.ActiveCfg = Release|Win32 {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.Build.0 = Release|Win32 {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.ActiveCfg = Debug|Win32 {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.Build.0 = Debug|Win32 {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.ActiveCfg = Release|Win32 {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.Build.0 = Release|Win32 {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.ActiveCfg = Debug|Win32 {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.Build.0 = Debug|Win32 {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.ActiveCfg = Release|Win32 {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.Build.0 = Release|Win32 {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.ActiveCfg = Debug|Win32 {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.Build.0 = Debug|Win32 {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.ActiveCfg = Release|Win32 {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.Build.0 = Release|Win32 {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.ActiveCfg = Debug|Win32 {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.Build.0 = Debug|Win32 {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.ActiveCfg = Release|Win32 {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.Build.0 = Release|Win32 {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.ActiveCfg = Debug|Win32 {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.Build.0 = Debug|Win32 {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.ActiveCfg = Release|Win32 {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.Build.0 = Release|Win32 {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.ActiveCfg = Debug|Win32 {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.Build.0 = Debug|Win32 {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.ActiveCfg = Release|Win32 {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.Build.0 = Release|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.ActiveCfg = Debug|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.Build.0 = Debug|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.ActiveCfg = Release|Win32 {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.Build.0 = Release|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.ActiveCfg = Debug|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.Build.0 = Debug|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.ActiveCfg = Release|Win32 {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.Build.0 = Release|Win32 {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.ActiveCfg = Debug|Win32 {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.Build.0 = Debug|Win32 {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.ActiveCfg = Release|Win32 {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.Build.0 = Release|Win32 {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.ActiveCfg = Debug|Win32 {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.Build.0 = Debug|Win32 {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.ActiveCfg = Release|Win32 {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.Build.0 = Release|Win32 {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.ActiveCfg = Debug|Win32 {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.Build.0 = Debug|Win32 {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.ActiveCfg = Release|Win32 {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.Build.0 = Release|Win32 {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.ActiveCfg = Debug|Win32 {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.Build.0 = Debug|Win32 {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.ActiveCfg = Release|Win32 {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.Build.0 = Release|Win32 {680CDC79-9CCA-4282-9A8D-927CB0DB55B2}.Debug.ActiveCfg = Debug|Win32 {680CDC79-9CCA-4282-9A8D-927CB0DB55B2}.Debug.Build.0 = Debug|Win32 {680CDC79-9CCA-4282-9A8D-927CB0DB55B2}.Release.ActiveCfg = Release|Win32 {680CDC79-9CCA-4282-9A8D-927CB0DB55B2}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal --- NEW FILE: pyexpat.vcproj --- --- NEW FILE: python.vcproj --- --- NEW FILE: pythoncore.vcproj --- [...2444 lines suppressed...] Name="Release|Win32"> --- NEW FILE: pythonw.vcproj --- --- NEW FILE: select.vcproj --- --- NEW FILE: unicodedata.vcproj --- --- NEW FILE: w9xpopen.vcproj --- --- NEW FILE: winsound.vcproj --- --- NEW FILE: zlib.vcproj --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:17 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:17 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Objects abstract.c, 1.5, 1.6 classobject.c, 1.8, 1.9 descrobject.c, 1.4, 1.5 frameobject.c, 1.18, 1.19 funcobject.c, 1.2, 1.3 methodobject.c, 1.4, 1.5 object.c, 1.4, 1.5 rangeobject.c, 1.1.1.3, 1.2 typeobject.c, 1.6, 1.7 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Objects In directory centera.de:/tmp/cvs-serv18709/src/Objects Modified Files: abstract.c classobject.c descrobject.c frameobject.c funcobject.c methodobject.c object.c rangeobject.c typeobject.c Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: abstract.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/abstract.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** abstract.c 30 Apr 2004 22:11:26 -0000 1.5 --- abstract.c 1 May 2004 01:21:10 -0000 1.6 *************** *** 6,9 **** --- 6,10 ---- #include "structmember.h" /* we need the offsetof() macro from there */ #include "longintrepr.h" + #include "core/stackless_impl.h" #define NEW_STYLE_NUMBER(o) PyType_HasFeature((o)->ob_type, \ *************** *** 1683,1690 **** PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { ! ternaryfunc call; if ((call = func->ob_type->tp_call) != NULL) { ! PyObject *result = (*call)(func, arg, kw); if (result == NULL && !PyErr_Occurred()) PyErr_SetString( --- 1684,1693 ---- PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { ! STACKLESS_GETARG(); ! ternaryfunc call; if ((call = func->ob_type->tp_call) != NULL) { ! PyObject *result = (STACKLESS_PROMOTE(func), (*call)(func, arg, kw)); ! STACKLESS_ASSERT(); if (result == NULL && !PyErr_Occurred()) PyErr_SetString( *************** *** 1701,1704 **** --- 1704,1708 ---- PyObject_CallFunction(PyObject *callable, char *format, ...) { + STACKLESS_GETARG(); va_list va; PyObject *args, *retval; *************** *** 1728,1733 **** --- 1732,1743 ---- args = a; } + <<<<<<< ../../2.2/src/./Objects/abstract.c retval = PyObject_CallObject(callable, args); + ======= + STACKLESS_PROMOTE_ALL(); + retval = PyObject_Call(callable, args, NULL); + STACKLESS_ASSERT(); + >>>>>>> ././Objects/abstract.c Py_DECREF(args); *************** *** 1738,1741 **** --- 1748,1752 ---- PyObject_CallMethod(PyObject *o, char *name, char *format, ...) { + STACKLESS_GETARG(); va_list va; PyObject *args, *func = 0, *retval; *************** *** 1774,1780 **** --- 1785,1793 ---- args = a; } + STACKLESS_PROMOTE_ALL(); retval = PyObject_CallObject(func, args); + STACKLESS_ASSERT(); Py_DECREF(args); Py_DECREF(func); *************** *** 1817,1820 **** --- 1830,1834 ---- PyObject_CallMethodObjArgs(PyObject *callable, PyObject *name, ...) { + STACKLESS_GETARG(); PyObject *args, *tmp; va_list vargs; *************** *** 1835,1839 **** --- 1849,1855 ---- return NULL; } + STACKLESS_PROMOTE_ALL(); tmp = PyObject_Call(callable, args, NULL); + STACKLESS_ASSERT(); Py_DECREF(args); Py_DECREF(callable); *************** *** 1845,1848 **** --- 1861,1865 ---- PyObject_CallFunctionObjArgs(PyObject *callable, ...) { + STACKLESS_GETARG(); PyObject *args, *tmp; va_list vargs; *************** *** 1857,1861 **** --- 1874,1880 ---- if (args == NULL) return NULL; + STACKLESS_PROMOTE_ALL(); tmp = PyObject_Call(callable, args, NULL); + STACKLESS_ASSERT(); Py_DECREF(args); *************** *** 2083,2087 **** --- 2102,2108 ---- PyIter_Next(PyObject *iter) { + STACKLESS_GETARG(); PyObject *result; + <<<<<<< ../../2.2/src/./Objects/abstract.c if (!PyIter_Check(iter)) { PyErr_Format(PyExc_TypeError, *************** *** 2090,2094 **** --- 2111,2123 ---- return NULL; } + ======= + assert(PyIter_Check(iter)); + #ifdef STACKLESS + /* we use the same flag here, since iterators are not callable */ + #endif + STACKLESS_PROMOTE(iter); + >>>>>>> ././Objects/abstract.c result = (*iter->ob_type->tp_iternext)(iter); + STACKLESS_ASSERT(); if (result == NULL && PyErr_Occurred() && Index: classobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/classobject.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** classobject.c 30 Apr 2004 22:11:26 -0000 1.8 --- classobject.c 1 May 2004 01:21:10 -0000 1.9 *************** *** 4,7 **** --- 4,8 ---- #include "Python.h" #include "structmember.h" + #include "core/stackless_impl.h" #define TP_DESCR_GET(t) \ *************** *** 2266,2269 **** --- 2267,2271 ---- instancemethod_call(PyObject *func, PyObject *arg, PyObject *kw) { + STACKLESS_GETARG(); PyObject *self = PyMethod_GET_SELF(func); PyObject *class = PyMethod_GET_CLASS(func); *************** *** 2313,2317 **** --- 2315,2321 ---- arg = newarg; } + STACKLESS_PROMOTE_ALL(); result = PyObject_Call((PyObject *)func, arg, kw); + STACKLESS_ASSERT(); Py_DECREF(arg); return result; *************** *** 2355,2360 **** --- 2359,2374 ---- PyObject_GenericSetAttr, /* tp_setattro */ 0, /* tp_as_buffer */ + <<<<<<< ../../2.2/src/./Objects/classobject.c Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */ 0, /* tp_doc */ + ======= + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */ + #else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ + #endif + instancemethod_doc, /* tp_doc */ + >>>>>>> ././Objects/classobject.c (traverseproc)instancemethod_traverse, /* tp_traverse */ 0, /* tp_clear */ Index: descrobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/descrobject.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** descrobject.c 30 Apr 2004 22:11:26 -0000 1.4 --- descrobject.c 1 May 2004 01:21:10 -0000 1.5 *************** *** 3,6 **** --- 3,7 ---- #include "Python.h" #include "structmember.h" /* Why is this not included in Python.h? */ + #include "core/stackless_impl.h" static void *************** *** 173,176 **** --- 174,178 ---- methoddescr_call(PyMethodDescrObject *descr, PyObject *args, PyObject *kwds) { + STACKLESS_GETARG(); int argc; PyObject *self, *func, *result; *************** *** 207,211 **** --- 209,215 ---- return NULL; } + STACKLESS_PROMOTE_ALL(); result = PyEval_CallObjectWithKeywords(func, args, kwds); + STACKLESS_ASSERT(); Py_DECREF(args); Py_DECREF(func); *************** *** 214,219 **** --- 218,245 ---- static PyObject * + <<<<<<< ../../2.2/src/./Objects/descrobject.c + ======= + classmethoddescr_call(PyMethodDescrObject *descr, PyObject *args, + PyObject *kwds) + { + STACKLESS_GETARG(); + PyObject *func, *result; + + func = PyCFunction_New(descr->d_method, (PyObject *)descr->d_type); + if (func == NULL) + return NULL; + + STACKLESS_PROMOTE_ALL(); + result = PyEval_CallObjectWithKeywords(func, args, kwds); + STACKLESS_ASSERT(); + Py_DECREF(func); + return result; + } + + static PyObject * + >>>>>>> ././Objects/descrobject.c wrapperdescr_call(PyWrapperDescrObject *descr, PyObject *args, PyObject *kwds) { + STACKLESS_GETARG(); int argc; PyObject *self, *func, *result; *************** *** 250,254 **** --- 276,282 ---- return NULL; } + STACKLESS_PROMOTE_ALL(); result = PyEval_CallObjectWithKeywords(func, args, kwds); + STACKLESS_ASSERT(); Py_DECREF(args); Py_DECREF(func); *************** *** 336,340 **** --- 364,372 ---- } + #ifdef STACKLESS + PyTypeObject PyMethodDescr_Type = { + #else static PyTypeObject PyMethodDescr_Type = { + #endif PyObject_HEAD_INIT(&PyType_Type) 0, *************** *** 357,361 **** --- 389,398 ---- 0, /* tp_setattro */ 0, /* tp_as_buffer */ + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */ + #else Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ + #endif 0, /* tp_doc */ descr_traverse, /* tp_traverse */ *************** *** 374,377 **** --- 411,461 ---- }; + <<<<<<< ../../2.2/src/./Objects/descrobject.c + ======= + /* This is for METH_CLASS in C, not for "f = classmethod(f)" in Python! */ + static PyTypeObject PyClassMethodDescr_Type = { + PyObject_HEAD_INIT(&PyType_Type) + 0, + "classmethod_descriptor", + sizeof(PyMethodDescrObject), + 0, + (destructor)descr_dealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_compare */ + (reprfunc)method_repr, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + (ternaryfunc)classmethoddescr_call, /* tp_call */ + 0, /* tp_str */ + PyObject_GenericGetAttr, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */ + #else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ + #endif + 0, /* tp_doc */ + descr_traverse, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + descr_members, /* tp_members */ + method_getset, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + (descrgetfunc)classmethod_get, /* tp_descr_get */ + 0, /* tp_descr_set */ + }; + + >>>>>>> ././Objects/descrobject.c static PyTypeObject PyMemberDescr_Type = { PyObject_HEAD_INIT(&PyType_Type) *************** *** 471,475 **** --- 555,564 ---- 0, /* tp_setattro */ 0, /* tp_as_buffer */ + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */ + #else Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ + #endif 0, /* tp_doc */ descr_traverse, /* tp_traverse */ *************** *** 800,806 **** --- 889,912 ---- }; + #ifdef STACKLESS + #define WRAP_RETURN(call) { \ + PyObject * retval; \ + STACKLESS_PROMOTE_FLAG( \ + wp->descr->d_base->flags & PyWrapperFlag_STACKLESS && \ + wp->descr->d_type->tp_flags & Py_TPFLAGS_HAVE_STACKLESS_CALL); \ + retval = (call); \ + STACKLESS_ASSERT(); \ + return retval; \ + } + #else + #define WRAP_RETURN(call) return (call) + #endif + static PyObject * wrapper_call(wrapperobject *wp, PyObject *args, PyObject *kwds) { + #ifdef STACKLESS + STACKLESS_GETARG(); + #endif wrapperfunc wrapper = wp->descr->d_base->wrapper; PyObject *self = wp->self; *************** *** 808,812 **** if (wp->descr->d_base->flags & PyWrapperFlag_KEYWORDS) { wrapperfunc_kwds wk = (wrapperfunc_kwds)wrapper; ! return (*wk)(self, args, wp->descr->d_wrapped, kwds); } --- 914,918 ---- if (wp->descr->d_base->flags & PyWrapperFlag_KEYWORDS) { wrapperfunc_kwds wk = (wrapperfunc_kwds)wrapper; ! WRAP_RETURN( (*wk)(self, args, wp->descr->d_wrapped, kwds) ); } *************** *** 817,821 **** return NULL; } ! return (*wrapper)(self, args, wp->descr->d_wrapped); } --- 923,927 ---- return NULL; } ! WRAP_RETURN( (*wrapper)(self, args, wp->descr->d_wrapped) ); } *************** *** 839,843 **** --- 945,954 ---- } + #ifdef STACKLESS + #define wrappertype PyMethodWrapper_Type + PyTypeObject PyMethodWrapper_Type = { + #else static PyTypeObject wrappertype = { + #endif PyObject_HEAD_INIT(&PyType_Type) 0, /* ob_size */ *************** *** 861,865 **** --- 972,981 ---- 0, /* tp_setattro */ 0, /* tp_as_buffer */ + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */ + #else Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */ + #endif 0, /* tp_doc */ wrapper_traverse, /* tp_traverse */ Index: frameobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/frameobject.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** frameobject.c 1 May 2004 00:44:35 -0000 1.18 --- frameobject.c 1 May 2004 01:21:10 -0000 1.19 *************** *** 12,16 **** --- 12,18 ---- static PyMemberDef frame_memberlist[] = { + #ifndef STACKLESS {"f_back", T_OBJECT, OFF(f_back), RO}, + #endif {"f_code", T_OBJECT, OFF(f_code), RO}, {"f_builtins", T_OBJECT, OFF(f_builtins),RO}, *************** *** 23,26 **** --- 25,33 ---- {"f_exc_value", T_OBJECT, OFF(f_exc_value)}, {"f_exc_traceback", T_OBJECT, OFF(f_exc_traceback)}, + #ifdef STACKLESS + {"_exec_adr", T_INT, OFF(f_execute), RO, + "The address of the execute C function of this frame.\n" + "use f._exec_map[adr] to find its pickling name."}, + #endif {NULL} /* Sentinel */ }; *************** *** 34,38 **** --- 41,376 ---- } + <<<<<<< ../../2.2/src/./Objects/frameobject.c + ======= + static PyObject * + frame_getlineno(PyFrameObject *f, void *closure) + { + int lineno; + + if (f->f_trace) + lineno = f->f_lineno; + else + lineno = PyCode_Addr2Line(f->f_code, f->f_lasti); + + return PyInt_FromLong(lineno); + } + + /* Setter for f_lineno - you can set f_lineno from within a trace function in + * order to jump to a given line of code, subject to some restrictions. Most + * lines are OK to jump to because they don't make any assumptions about the + * state of the stack (obvious because you could remove the line and the code + * would still work without any stack errors), but there are some constructs + * that limit jumping: + * + * o Lines with an 'except' statement on them can't be jumped to, because + * they expect an exception to be on the top of the stack. + * o Lines that live in a 'finally' block can't be jumped from or to, since + * the END_FINALLY expects to clean up the stack after the 'try' block. + * o 'try'/'for'/'while' blocks can't be jumped into because the blockstack + * needs to be set up before their code runs, and for 'for' loops the + * iterator needs to be on the stack. + */ + static int + frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno) + { + int new_lineno = 0; /* The new value of f_lineno */ + int new_lasti = 0; /* The new value of f_lasti */ + int new_iblock = 0; /* The new value of f_iblock */ + char *code = NULL; /* The bytecode for the frame... */ + int code_len = 0; /* ...and its length */ + char *lnotab = NULL; /* Iterating over co_lnotab */ + int lnotab_len = 0; /* (ditto) */ + int offset = 0; /* (ditto) */ + int line = 0; /* (ditto) */ + int addr = 0; /* (ditto) */ + int min_addr = 0; /* Scanning the SETUPs and POPs */ + int max_addr = 0; /* (ditto) */ + int delta_iblock = 0; /* (ditto) */ + int min_delta_iblock = 0; /* (ditto) */ + int min_iblock = 0; /* (ditto) */ + int f_lasti_setup_addr = 0; /* Policing no-jump-into-finally */ + int new_lasti_setup_addr = 0; /* (ditto) */ + int blockstack[CO_MAXBLOCKS]; /* Walking the 'finally' blocks */ + int in_finally[CO_MAXBLOCKS]; /* (ditto) */ + int blockstack_top = 0; /* (ditto) */ + int setup_op = 0; /* (ditto) */ + + /* f_lineno must be an integer. */ + if (!PyInt_Check(p_new_lineno)) { + PyErr_SetString(PyExc_ValueError, + "lineno must be an integer"); + return -1; + } + + /* You can only do this from within a trace function, not via + * _getframe or similar hackery. */ + if (!f->f_trace) + { + PyErr_Format(PyExc_ValueError, + "f_lineno can only be set by a trace function"); + return -1; + } + + /* Fail if the line comes before the start of the code block. */ + new_lineno = (int) PyInt_AsLong(p_new_lineno); + if (new_lineno < f->f_code->co_firstlineno) { + PyErr_Format(PyExc_ValueError, + "line %d comes before the current code block", + new_lineno); + return -1; + } + + /* Find the bytecode offset for the start of the given line, or the + * first code-owning line after it. */ + PyString_AsStringAndSize(f->f_code->co_lnotab, &lnotab, &lnotab_len); + addr = 0; + line = f->f_code->co_firstlineno; + new_lasti = -1; + for (offset = 0; offset < lnotab_len; offset += 2) { + addr += lnotab[offset]; + line += lnotab[offset+1]; + if (line >= new_lineno) { + new_lasti = addr; + new_lineno = line; + break; + } + } + + /* If we didn't reach the requested line, return an error. */ + if (new_lasti == -1) { + PyErr_Format(PyExc_ValueError, + "line %d comes after the current code block", + new_lineno); + return -1; + } + + /* We're now ready to look at the bytecode. */ + PyString_AsStringAndSize(f->f_code->co_code, &code, &code_len); + min_addr = MIN(new_lasti, f->f_lasti); + max_addr = MAX(new_lasti, f->f_lasti); + + /* You can't jump onto a line with an 'except' statement on it - + * they expect to have an exception on the top of the stack, which + * won't be true if you jump to them. They always start with code + * that either pops the exception using POP_TOP (plain 'except:' + * lines do this) or duplicates the exception on the stack using + * DUP_TOP (if there's an exception type specified). See compile.c, + * 'com_try_except' for the full details. There aren't any other + * cases (AFAIK) where a line's code can start with DUP_TOP or + * POP_TOP, but if any ever appear, they'll be subject to the same + * restriction (but with a different error message). */ + if (code[new_lasti] == DUP_TOP || code[new_lasti] == POP_TOP) { + PyErr_SetString(PyExc_ValueError, + "can't jump to 'except' line as there's no exception"); + return -1; + } + + /* You can't jump into or out of a 'finally' block because the 'try' + * block leaves something on the stack for the END_FINALLY to clean + * up. So we walk the bytecode, maintaining a simulated blockstack. + * When we reach the old or new address and it's in a 'finally' block + * we note the address of the corresponding SETUP_FINALLY. The jump + * is only legal if neither address is in a 'finally' block or + * they're both in the same one. 'blockstack' is a stack of the + * bytecode addresses of the SETUP_X opcodes, and 'in_finally' tracks + * whether we're in a 'finally' block at each blockstack level. */ + f_lasti_setup_addr = -1; + new_lasti_setup_addr = -1; + memset(blockstack, '\0', sizeof(blockstack)); + memset(in_finally, '\0', sizeof(in_finally)); + blockstack_top = 0; + for (addr = 0; addr < code_len; addr++) { + unsigned char op = code[addr]; + switch (op) { + case SETUP_LOOP: + case SETUP_EXCEPT: + case SETUP_FINALLY: + blockstack[blockstack_top++] = addr; + in_finally[blockstack_top-1] = 0; + break; + + case POP_BLOCK: + assert(blockstack_top > 0); + setup_op = code[blockstack[blockstack_top-1]]; + if (setup_op == SETUP_FINALLY) { + in_finally[blockstack_top-1] = 1; + } + else { + blockstack_top--; + } + break; + + case END_FINALLY: + /* Ignore END_FINALLYs for SETUP_EXCEPTs - they exist + * in the bytecode but don't correspond to an actual + * 'finally' block. (If blockstack_top is 0, we must + * be seeing such an END_FINALLY.) */ + if (blockstack_top > 0) { + setup_op = code[blockstack[blockstack_top-1]]; + if (setup_op == SETUP_FINALLY) { + blockstack_top--; + } + } + break; + } + + /* For the addresses we're interested in, see whether they're + * within a 'finally' block and if so, remember the address + * of the SETUP_FINALLY. */ + if (addr == new_lasti || addr == f->f_lasti) { + int i = 0; + int setup_addr = -1; + for (i = blockstack_top-1; i >= 0; i--) { + if (in_finally[i]) { + setup_addr = blockstack[i]; + break; + } + } + + if (setup_addr != -1) { + if (addr == new_lasti) { + new_lasti_setup_addr = setup_addr; + } + + if (addr == f->f_lasti) { + f_lasti_setup_addr = setup_addr; + } + } + } + + if (op >= HAVE_ARGUMENT) { + addr += 2; + } + } + + /* Verify that the blockstack tracking code didn't get lost. */ + assert(blockstack_top == 0); + + /* After all that, are we jumping into / out of a 'finally' block? */ + if (new_lasti_setup_addr != f_lasti_setup_addr) { + PyErr_SetString(PyExc_ValueError, + "can't jump into or out of a 'finally' block"); + return -1; + } + + + /* Police block-jumping (you can't jump into the middle of a block) + * and ensure that the blockstack finishes up in a sensible state (by + * popping any blocks we're jumping out of). We look at all the + * blockstack operations between the current position and the new + * one, and keep track of how many blocks we drop out of on the way. + * By also keeping track of the lowest blockstack position we see, we + * can tell whether the jump goes into any blocks without coming out + * again - in that case we raise an exception below. */ + delta_iblock = 0; + for (addr = min_addr; addr < max_addr; addr++) { + unsigned char op = code[addr]; + switch (op) { + case SETUP_LOOP: + case SETUP_EXCEPT: + case SETUP_FINALLY: + delta_iblock++; + break; + + case POP_BLOCK: + delta_iblock--; + break; + } + + min_delta_iblock = MIN(min_delta_iblock, delta_iblock); + + if (op >= HAVE_ARGUMENT) { + addr += 2; + } + } + + /* Derive the absolute iblock values from the deltas. */ + min_iblock = f->f_iblock + min_delta_iblock; + if (new_lasti > f->f_lasti) { + /* Forwards jump. */ + new_iblock = f->f_iblock + delta_iblock; + } + else { + /* Backwards jump. */ + new_iblock = f->f_iblock - delta_iblock; + } + + /* Are we jumping into a block? */ + if (new_iblock > min_iblock) { + PyErr_SetString(PyExc_ValueError, + "can't jump into the middle of a block"); + return -1; + } + + /* Pop any blocks that we're jumping out of. */ + while (f->f_iblock > new_iblock) { + PyTryBlock *b = &f->f_blockstack[--f->f_iblock]; + while ((f->f_stacktop - f->f_valuestack) > b->b_level) { + PyObject *v = (*--f->f_stacktop); + Py_DECREF(v); + } + } + + /* Finally set the new f_lineno and f_lasti and return OK. */ + f->f_lineno = new_lineno; + f->f_lasti = new_lasti; + return 0; + } + + static PyObject * + frame_gettrace(PyFrameObject *f, void *closure) + { + PyObject* trace = f->f_trace; + + if (trace == NULL) + trace = Py_None; + + Py_INCREF(trace); + + return trace; + } + + static int + frame_settrace(PyFrameObject *f, PyObject* v, void *closure) + { + /* We rely on f_lineno being accurate when f_trace is set. */ + + PyObject* old_value = f->f_trace; + + Py_XINCREF(v); + f->f_trace = v; + + if (v != NULL) + f->f_lineno = PyCode_Addr2Line(f->f_code, f->f_lasti); + + Py_XDECREF(old_value); + + return 0; + } + + #ifdef STACKLESS + + static PyObject * + frame_getback(PyFrameObject *f, void *nope) + { + PyFrameObject *fb = f->f_back; + PyObject *ret; + while (fb != NULL && ! PyFrame_Check(fb)) + fb = fb->f_back; + ret = (PyObject *) fb; + if (ret == NULL) + ret = Py_None; + Py_INCREF(ret); + return ret; + } + + #endif + + + >>>>>>> ././Objects/frameobject.c static PyGetSetDef frame_getsetlist[] = { + #ifdef STACKLESS + {"f_back", (getter)frame_getback, NULL, NULL}, + #endif {"f_locals", (getter)frame_getlocals, NULL, NULL}, {0} *************** *** 305,309 **** --- 643,649 ---- f->f_trace = NULL; f->f_exc_type = f->f_exc_value = f->f_exc_traceback = NULL; + #ifndef STACKLESS f->f_tstate = tstate; + #endif f->f_lasti = 0; *************** *** 321,324 **** --- 661,667 ---- f->f_valuestack = f->f_localsplus + extras; f->f_stacktop = f->f_valuestack; + #ifdef STACKLESS + f->f_execute = NULL; + #endif _PyObject_GC_TRACK(f); return f; Index: funcobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/funcobject.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** funcobject.c 21 Aug 2003 16:59:16 -0000 1.2 --- funcobject.c 1 May 2004 01:21:10 -0000 1.3 *************** *** 6,9 **** --- 6,10 ---- #include "eval.h" #include "structmember.h" + #include "core/stackless_impl.h" PyObject * *************** *** 440,443 **** --- 441,445 ---- function_call(PyObject *func, PyObject *arg, PyObject *kw) { + STACKLESS_GETARG(); PyObject *result; PyObject *argdefs; *************** *** 474,477 **** --- 476,480 ---- } + STACKLESS_PROMOTE_ALL(); result = PyEval_EvalCodeEx( (PyCodeObject *)PyFunction_GET_CODE(func), *************** *** 480,483 **** --- 483,487 ---- k, nk, d, nd, PyFunction_GET_CLOSURE(func)); + STACKLESS_ASSERT(); if (k != NULL) *************** *** 517,521 **** --- 521,530 ---- PyObject_GenericSetAttr, /* tp_setattro */ 0, /* tp_as_buffer */ + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL,/* tp_flags */ + #else Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */ + #endif func_doc, /* tp_doc */ (traverseproc)func_traverse, /* tp_traverse */ Index: methodobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/methodobject.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** methodobject.c 1 May 2004 00:44:35 -0000 1.4 --- methodobject.c 1 May 2004 01:21:10 -0000 1.5 *************** *** 3,6 **** --- 3,11 ---- #include "Python.h" + <<<<<<< ../../2.2/src/./Objects/methodobject.c + ======= + #include "structmember.h" + #include "core/stackless_impl.h" + >>>>>>> ././Objects/methodobject.c static PyCFunctionObject *free_list = NULL; *************** *** 56,62 **** --- 61,82 ---- } + #ifdef STACKLESS + #define WRAP_RETURN(call) { \ + PyObject * retval; \ + STACKLESS_PROMOTE_FLAG(PyCFunction_GET_FLAGS(func) & METH_STACKLESS); \ + retval = (call); \ + STACKLESS_ASSERT(); \ + return retval; \ + } + #else + #define WRAP_RETURN(call) return (call) + #endif + PyObject * PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { + #ifdef STACKLESS + STACKLESS_GETARG(); + #endif PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = PyCFunction_GET_FUNCTION(func); *************** *** 65,68 **** --- 85,89 ---- int size = PyTuple_GET_SIZE(arg); + <<<<<<< ../../2.2/src/./Objects/methodobject.c if (flags & METH_KEYWORDS) { return (*(PyCFunctionWithKeywords)meth)(self, arg, kw); *************** *** 76,82 **** --- 97,120 ---- switch (flags) { + ======= + #ifdef STACKLESS + switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_STACKLESS)) { + #else + switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC)) { + #endif + >>>>>>> ././Objects/methodobject.c case METH_VARARGS: + <<<<<<< ../../2.2/src/./Objects/methodobject.c return (*meth)(self, arg); + ======= + if (kw == NULL || PyDict_Size(kw) == 0) + WRAP_RETURN( (*meth)(self, arg) ); + break; + case METH_VARARGS | METH_KEYWORDS: + case METH_OLDARGS | METH_KEYWORDS: + WRAP_RETURN( (*(PyCFunctionWithKeywords)meth)(self, arg, kw) ); + >>>>>>> ././Objects/methodobject.c case METH_NOARGS: + <<<<<<< ../../2.2/src/./Objects/methodobject.c if (size == 0) return (*meth)(self, NULL); *************** *** 85,89 **** --- 123,140 ---- f->m_ml->ml_name, size); return NULL; + ======= + if (kw == NULL || PyDict_Size(kw) == 0) { + size = PyTuple_GET_SIZE(arg); + if (size == 0) + WRAP_RETURN( (*meth)(self, NULL) ); + PyErr_Format(PyExc_TypeError, + "%.200s() takes no arguments (%d given)", + f->m_ml->ml_name, size); + return NULL; + } + break; + >>>>>>> ././Objects/methodobject.c case METH_O: + <<<<<<< ../../2.2/src/./Objects/methodobject.c if (size == 1) return (*meth)(self, PyTuple_GET_ITEM(arg, 0)); *************** *** 92,97 **** --- 143,161 ---- f->m_ml->ml_name, size); return NULL; + ======= + if (kw == NULL || PyDict_Size(kw) == 0) { + size = PyTuple_GET_SIZE(arg); + if (size == 1) + WRAP_RETURN( (*meth)(self, PyTuple_GET_ITEM(arg, 0)) ); + PyErr_Format(PyExc_TypeError, + "%.200s() takes exactly one argument (%d given)", + f->m_ml->ml_name, size); + return NULL; + } + break; + >>>>>>> ././Objects/methodobject.c case METH_OLDARGS: /* the really old style */ + <<<<<<< ../../2.2/src/./Objects/methodobject.c if (size == 1) arg = PyTuple_GET_ITEM(arg, 0); *************** *** 99,102 **** --- 163,177 ---- arg = NULL; return (*meth)(self, arg); + ======= + if (kw == NULL || PyDict_Size(kw) == 0) { + size = PyTuple_GET_SIZE(arg); + if (size == 1) + arg = PyTuple_GET_ITEM(arg, 0); + else if (size == 0) + arg = NULL; + WRAP_RETURN( (*meth)(self, arg) ); + } + break; + >>>>>>> ././Objects/methodobject.c default: /* should never get here ??? */ *************** *** 232,236 **** --- 307,320 ---- 0, /* tp_setattro */ 0, /* tp_as_buffer */ + <<<<<<< ../../2.2/src/./Objects/methodobject.c Py_TPFLAGS_DEFAULT, /* tp_flags */ + ======= + #ifdef STACKLESS + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | + Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */ + #else + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */ + #endif + >>>>>>> ././Objects/methodobject.c 0, /* tp_doc */ (traverseproc)meth_traverse, /* tp_traverse */ Index: object.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/object.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** object.c 1 May 2004 00:44:35 -0000 1.4 --- object.c 1 May 2004 01:21:10 -0000 1.5 *************** *** 23,26 **** --- 23,72 ---- Do not call them otherwise, they do not initialize the object! */ + <<<<<<< ../../2.2/src/./Objects/object.c + ======= + #ifdef Py_TRACE_REFS + /* Head of circular doubly-linked list of all objects. These are linked + * together via the _ob_prev and _ob_next members of a PyObject, which + * exist only in a Py_TRACE_REFS build. + */ + static PyObject refchain = {&refchain, &refchain}; + + #ifdef STACKLESS + /* track refcount problems down */ + PyObject *_Py_RefChain = &refchain; + #endif + + /* Insert op at the front of the list of all objects. If force is true, + * op is added even if _ob_prev and _ob_next are non-NULL already. If + * force is false amd _ob_prev or _ob_next are non-NULL, do nothing. + * force should be true if and only if op points to freshly allocated, + * uninitialized memory, or you've unlinked op from the list and are + * relinking it into the front. + * Note that objects are normally added to the list via _Py_NewReference, + * which is called by PyObject_Init. Not all objects are initialized that + * way, though; exceptions include statically allocated type objects, and + * statically allocated singletons (like Py_True and Py_None). + */ + void + _Py_AddToAllObjects(PyObject *op, int force) + { + #ifdef Py_DEBUG + if (!force) { + /* If it's initialized memory, op must be in or out of + * the list unambiguously. + */ + assert((op->_ob_prev == NULL) == (op->_ob_next == NULL)); + } + #endif + if (force || op->_ob_prev == NULL) { + op->_ob_next = refchain._ob_next; + op->_ob_prev = &refchain; + refchain._ob_next->_ob_prev = op; + refchain._ob_next = op; + } + } + #endif /* Py_TRACE_REFS */ + + >>>>>>> ././Objects/object.c #ifdef COUNT_ALLOCS static PyTypeObject *type_list; Index: rangeobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/rangeobject.c,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -C2 -d -r1.1.1.3 -r1.2 *** rangeobject.c 15 Oct 2002 22:26:33 -0000 1.1.1.3 --- rangeobject.c 1 May 2004 01:21:10 -0000 1.2 *************** *** 204,210 **** --- 204,219 ---- return r1->len - r2->len; + <<<<<<< ../../2.2/src/./Objects/rangeobject.c else return r1->reps - r2->reps; } + ======= + #ifdef STACKLESS + PyTypeObject PyRangeIter_Type; + #define Pyrangeiter_Type PyRangeIter_Type + #else + static PyTypeObject Pyrangeiter_Type; + #endif + >>>>>>> ././Objects/rangeobject.c static PyObject * *************** *** 304,307 **** --- 313,317 ---- } + <<<<<<< ../../2.2/src/./Objects/rangeobject.c static PySequenceMethods range_as_sequence = { (inquiry)range_length, /*sq_length*/ *************** *** 316,319 **** --- 326,336 ---- PyTypeObject PyRange_Type = { + ======= + #ifdef STACKLESS + PyTypeObject PyRangeIter_Type = { + #else + static PyTypeObject Pyrangeiter_Type = { + #endif + >>>>>>> ././Objects/rangeobject.c PyObject_HEAD_INIT(&PyType_Type) 0, /* Number of items for varobject */ Index: typeobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/typeobject.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** typeobject.c 1 May 2004 00:44:35 -0000 1.6 --- typeobject.c 1 May 2004 01:21:10 -0000 1.7 *************** *** 4,7 **** --- 4,8 ---- #include "Python.h" #include "structmember.h" + #include "core/stackless_impl.h" #include *************** *** 502,506 **** } else { ! /* a is not completely initilized yet; follow tp_base */ do { if (a == b) --- 503,507 ---- } else { ! /* a is not completely initialized yet; follow tp_base */ do { if (a == b) *************** *** 564,567 **** --- 565,569 ---- call_method(PyObject *o, char *name, PyObject **nameobj, char *format, ...) { + STACKLESS_GETARG(); va_list va; PyObject *args, *func = 0, *retval; *************** *** 587,591 **** --- 589,595 ---- assert(PyTuple_Check(args)); + STACKLESS_PROMOTE_ALL(); retval = PyObject_Call(func, args, NULL); + STACKLESS_ASSERT(); Py_DECREF(args); *************** *** 600,603 **** --- 604,608 ---- call_maybe(PyObject *o, char *name, PyObject **nameobj, char *format, ...) { + STACKLESS_GETARG(); va_list va; PyObject *args, *func = 0, *retval; *************** *** 625,629 **** --- 630,636 ---- assert(PyTuple_Check(args)); + STACKLESS_PROMOTE_ALL(); retval = PyObject_Call(func, args, NULL); + STACKLESS_ASSERT(); Py_DECREF(args); *************** *** 1073,1077 **** --- 1080,1089 ---- return NULL; nslots = PyTuple_GET_SIZE(slots); + #ifdef STACKLESS + if (nslots > 0 && base->tp_itemsize != 0 && !PyType_Check(base)) { + /* for the special case of meta types, allow slots */ + #else if (nslots > 0 && base->tp_itemsize != 0) { + #endif PyErr_Format(PyExc_TypeError, "nonempty __slots__ " *************** *** 3902,3907 **** --- 3914,3925 ---- TPSLOT("__iter__", tp_iter, slot_tp_iter, wrap_unaryfunc, "x.__iter__() <==> iter(x)"), + #ifdef STACKLESS + FLSLOT("next", tp_iternext, slot_tp_iternext, wrap_next, + "x.next() -> the next value, or raise StopIteration", + PyWrapperFlag_STACKLESS), + #else TPSLOT("next", tp_iternext, slot_tp_iternext, wrap_next, "x.next() -> the next value, or raise StopIteration"), + #endif TPSLOT("__get__", tp_descr_get, slot_tp_descr_get, wrap_descr_get, "descr.__get__(obj[, type]) -> value"), _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 3 18:54:32 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 03 May 2004 18:54:32 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/test regrtest.py, 1.3, 1.4 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/test In directory centera.de:/tmp/cvs-serv20604/src/2.2/src/Lib/test Modified Files: regrtest.py Log Message: completely back-ported Stackless to Python 2.2.3. It passes all relevant tests, supports pickling etc. The gola is to keep the core files identical as long as possible. This caused a few changes to the test files, which need to figure out which tests to omit, for instance. This 2.2.3 versiion is almost identical to the original, but a few changes: - Pickling does not check for __safe_for_unpickling__ - Generators don't need from __future__ import generators - code objects have a builtin tp_new method. These changes *all* vanish if STACKLESS_OFF is defined. Index: regrtest.py =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Lib/test/regrtest.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** regrtest.py 1 May 2004 01:21:09 -0000 1.3 --- regrtest.py 3 May 2004 16:54:28 -0000 1.4 *************** *** 703,711 **** test_imgfile test_largefile - <<<<<<< ../../2.2/src/./Lib/test/regrtest.py - ======= - test_locale - test_linuxaudiodev - >>>>>>> ././Lib/test/regrtest.py test_locale test_linuxaudiodev --- 703,706 ---- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:05 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:05 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Doc/commontex .cvsignore, NONE, 1.1 boilerplate.tex, NONE, 1.1 copyright.tex, NONE, 1.1 license.tex, NONE, 1.1 reportingbugs.tex, NONE, 1.1 typestruct.h, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Doc/commontex In directory centera.de:/home/tismer/slpdev/src/2.2/src/Doc/commontex Added Files: .cvsignore boilerplate.tex copyright.tex license.tex reportingbugs.tex typestruct.h Log Message: added files --- NEW FILE: .cvsignore --- patchlevel.tex --- NEW FILE: boilerplate.tex --- \author{Guido van Rossum\\ Fred L. Drake, Jr., editor} \authoraddress{ \strong{Python Software Foundation}\\ Email: \email{docs at python.org} } \date{\today} % XXX update before final release! \input{patchlevel} % include Python version information --- NEW FILE: copyright.tex --- Copyright \copyright{} 2001-2004 Python Software Foundation. All rights reserved. Copyright \copyright{} 2000 BeOpen.com. All rights reserved. Copyright \copyright{} 1995-2000 Corporation for National Research Initiatives. All rights reserved. Copyright \copyright{} 1991-1995 Stichting Mathematisch Centrum. All rights reserved. See the end of this document for complete license and permissions information. --- NEW FILE: license.tex --- \section{History of the software} Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see \url{http://www.cwi.nl/}) in the Netherlands as a successor of a language called ABC. Guido remains Python's principal author, although it includes many contributions from others. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI, see \url{http://www.cnri.reston.va.us/}) in Reston, Virginia where he released several versions of the software. In May 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. In October of the same year, the PythonLabs team moved to Digital Creations (now Zope Corporation; see \url{http://www.zope.com/}). In 2001, the Python Software Foundation (PSF, see \url{http://www.python.org/psf/}) was formed, a non-profit organization created specifically to own Python-related Intellectual Property. Zope Corporation is a sponsoring member of the PSF. All Python releases are Open Source (see \url{http://www.opensource.org/} for the Open Source Definition). Historically, most, but not all, Python releases have also been GPL-compatible; the table below summarizes the various releases. \begin{tablev}{c|c|c|c|c}{textrm}% {Release}{Derived from}{Year}{Owner}{GPL compatible?} \linev{0.9.0 thru 1.2}{n/a}{1991-1995}{CWI}{yes} \linev{1.3 thru 1.5.2}{1.2}{1995-1999}{CNRI}{yes} \linev{1.6}{1.5.2}{2000}{CNRI}{no} \linev{2.0}{1.6}{2000}{BeOpen.com}{no} \linev{1.6.1}{1.6}{2001}{CNRI}{no} \linev{2.1}{2.0+1.6.1}{2001}{PSF}{no} \linev{2.0.1}{2.0+1.6.1}{2001}{PSF}{yes} \linev{2.1.1}{2.1+2.0.1}{2001}{PSF}{yes} \linev{2.2}{2.1.1}{2001}{PSF}{yes} \linev{2.1.2}{2.1.1}{2002}{PSF}{yes} \linev{2.1.3}{2.1.2}{2002}{PSF}{yes} \linev{2.2.1}{2.2}{2002}{PSF}{yes} \linev{2.2.2}{2.2.1}{2002}{PSF}{yes} \linev{2.2.3}{2.2.2}{2002-2003}{PSF}{yes} \linev{2.3}{2.2.2}{2002-2003}{PSF}{yes} \linev{2.3.1}{2.3}{2002-2003}{PSF}{yes} \linev{2.3.2}{2.3.1}{2003}{PSF}{yes} \linev{2.3.3}{2.3.2}{2003}{PSF}{yes} \linev{2.3.4}{2.3.3}{2004}{PSF}{yes} \end{tablev} \note{GPL-compatible doesn't mean that we're distributing Python under the GPL. All Python licenses, unlike the GPL, let you distribute a modified version without making your changes open source. The GPL-compatible licenses make it possible to combine Python with other software that is released under the GPL; the others don't.} Thanks to the many outside volunteers who have worked under Guido's direction to make these releases possible. \section{Terms and conditions for accessing or otherwise using Python} \centerline{\strong{PSF LICENSE AGREEMENT FOR PYTHON \version}} \begin{enumerate} \item This LICENSE AGREEMENT is between the Python Software Foundation (``PSF''), and the Individual or Organization (``Licensee'') accessing and otherwise using Python \version{} software in source or binary form and its associated documentation. \item Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python \version{} alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., ``Copyright \copyright{} 2001-2004 Python Software Foundation; All Rights Reserved'' are retained in Python \version{} alone or in any derivative version prepared by Licensee. \item In the event Licensee prepares a derivative work that is based on or incorporates Python \version{} or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python \version. \item PSF is making Python \version{} available to Licensee on an ``AS IS'' basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON \version{} WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. \item PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON \version{} FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON \version, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. \item This License Agreement will automatically terminate upon a material breach of its terms and conditions. \item Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. \item By copying, installing or otherwise using Python \version, Licensee agrees to be bound by the terms and conditions of this License Agreement. \end{enumerate} \centerline{\strong{BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0}} \centerline{\strong{BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1}} \begin{enumerate} \item This LICENSE AGREEMENT is between BeOpen.com (``BeOpen''), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization (``Licensee'') accessing and otherwise using this software in source or binary form and its associated documentation (``the Software''). \item Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. \item BeOpen is making the Software available to Licensee on an ``AS IS'' basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. \item BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. \item This License Agreement will automatically terminate upon a material breach of its terms and conditions. \item This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the ``BeOpen Python'' logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. \item By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. \end{enumerate} \centerline{\strong{CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1}} \begin{enumerate} \item This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 (``CNRI''), and the Individual or Organization (``Licensee'') accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation. \item Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., ``Copyright \copyright{} 1995-2001 Corporation for National Research Initiatives; All Rights Reserved'' are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): ``Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: \url{http://hdl.handle.net/1895.22/1013}.'' \item In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1. \item CNRI is making Python 1.6.1 available to Licensee on an ``AS IS'' basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. \item CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. \item This License Agreement will automatically terminate upon a material breach of its terms and conditions. \item This License Agreement shall be governed by the federal intellectual property law of the United States, including without limitation the federal copyright law, and, to the extent such U.S. federal law does not apply, by the law of the Commonwealth of Virginia, excluding Virginia's conflict of law provisions. Notwithstanding the foregoing, with regard to derivative works based on Python 1.6.1 that incorporate non-separable material that was previously distributed under the GNU General Public License (GPL), the law of the Commonwealth of Virginia shall govern this License Agreement only as to issues arising under or with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. \item By clicking on the ``ACCEPT'' button where indicated, or by copying, installing or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. \end{enumerate} \centerline{ACCEPT} \centerline{\strong{CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2}} Copyright \copyright{} 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \section{Licenses and Acknowledgements for Incorporated Software} This section is an incomplete, but growing list of licenses and acknowledgements for third-party software incorporated in the Python distribution. \subsection{Mersenne Twister} The \module{_random} module includes code based on a download from \url{http://www.math.keio.ac.jp/~matumoto/MT2002/emt19937ar.html}. The following are the verbatim comments from the original code: \begin{verbatim} A C-program for MT19937, with initialization improved 2002/1/26. Coded by Takuji Nishimura and Makoto Matsumoto. Before using, initialize the state by using init_genrand(seed) or init_by_array(init_key, key_length). Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Any feedback is very welcome. http://www.math.keio.ac.jp/matumoto/emt.html email: matumoto at math.keio.ac.jp \end{verbatim} \subsection{Sockets} The \module{socket} module uses the functions, \function{getaddrinfo}, and \function{getnameinfo}, which are coded in separate source files from the WIDE Project, \url{http://www.wide.ad.jp/about/index.html}. \begin{verbatim} Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND GAI_ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE FOR GAI_ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON GAI_ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN GAI_ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \end{verbatim} \subsection{Floating point exception control} The source for the \module{fpectl} module includes the following notice: \begin{verbatim} --------------------------------------------------------------------- / Copyright (c) 1996. \ | The Regents of the University of California. | | All rights reserved. | | | | Permission to use, copy, modify, and distribute this software for | | any purpose without fee is hereby granted, provided that this en- | | tire notice is included in all copies of any software which is or | | includes a copy or modification of this software and in all | | copies of the supporting documentation for such software. | | | | This work was produced at the University of California, Lawrence | | Livermore National Laboratory under contract no. W-7405-ENG-48 | | between the U.S. Department of Energy and The Regents of the | | University of California for the operation of UC LLNL. | | | | DISCLAIMER | | | | This software was prepared as an account of work sponsored by an | | agency of the United States Government. Neither the United States | | Government nor the University of California nor any of their em- | | ployees, makes any warranty, express or implied, or assumes any | | liability or responsibility for the accuracy, completeness, or | | usefulness of any information, apparatus, product, or process | | disclosed, or represents that its use would not infringe | | privately-owned rights. Reference herein to any specific commer- | | cial products, process, or service by trade name, trademark, | | manufacturer, or otherwise, does not necessarily constitute or | | imply its endorsement, recommendation, or favoring by the United | | States Government or the University of California. The views and | | opinions of authors expressed herein do not necessarily state or | | reflect those of the United States Government or the University | | of California, and shall not be used for advertising or product | \ endorsement purposes. / --------------------------------------------------------------------- \end{verbatim} \subsection{MD5 message digest algorithm} The source code for the \module{md5} module contains the following notice: \begin{verbatim} Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved. License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing this software or this function. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work. RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. These notices must be retained in any copies of any part of this documentation and/or software. \end{verbatim} \subsection{rotor -- Enigma-like encryption and decryption} The source code for the \module{rotor} contains the following notice: \begin{verbatim} Copyright 1994 by Lance Ellinghouse, Cathedral City, California Republic, United States of America. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Lance Ellinghouse not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \end{verbatim} \subsection{Asynchronous socket services} The \module{asynchat} and \module{asyncore} modules contain the following notice: \begin{verbatim} Copyright 1996 by Sam Rushing All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sam Rushing not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SAM RUSHING BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \end{verbatim} \subsection{Cookie management} The \module{Cookie} module contains the following notice: \begin{verbatim} Copyright 2000 by Timothy O'Malley All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Timothy O'Malley not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL Timothy O'Malley BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \end{verbatim} \subsection{Profiling} The \module{profile} and \module{pstats} modules contain the following notice: \begin{verbatim} Copyright 1994, by InfoSeek Corporation, all rights reserved. Written by James Roskind Permission to use, copy, modify, and distribute this Python software and its associated documentation for any purpose (subject to the restriction in the following sentence) without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of InfoSeek not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. This permission is explicitly restricted to the copying and modification of the software to remain in Python, compiled Python, or other languages (such as C) wherein the modified or derived code is exclusively imported into a Python module. INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INFOSEEK CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \end{verbatim} \subsection{Execution tracing} The \module{trace} module contains the following notice: \begin{verbatim} portions copyright 2001, Autonomous Zones Industries, Inc., all rights... err... reserved and offered to the public under the terms of the Python 2.2 license. Author: Zooko O'Whielacronx http://zooko.com/ mailto:zooko at zooko.com Copyright 2000, Mojam Media, Inc., all rights reserved. Author: Skip Montanaro Copyright 1999, Bioreason, Inc., all rights reserved. Author: Andrew Dalke Copyright 1995-1997, Automatrix, Inc., all rights reserved. Author: Skip Montanaro Copyright 1991-1995, Stichting Mathematisch Centrum, all rights reserved. Permission to use, copy, modify, and distribute this Python software and its associated documentation for any purpose without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of neither Automatrix, Bioreason or Mojam Media be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. \end{verbatim} \subsection{UUencode and UUdecode functions} The \module{uu} module contains the following notice: \begin{verbatim} Copyright 1994 by Lance Ellinghouse Cathedral City, California Republic, United States of America. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Lance Ellinghouse not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Modified by Jack Jansen, CWI, July 1995: - Use binascii module to do the actual line-by-line conversion between ascii and binary. This results in a 1000-fold speedup. The C version is still 5 times faster, though. - Arguments more compliant with python standard \end{verbatim} \subsection{XML Remote Procedure Calls} The \module{xmlrpclib} module contains the following notice: \begin{verbatim} The XML-RPC client interface is Copyright (c) 1999-2002 by Secret Labs AB Copyright (c) 1999-2002 by Fredrik Lundh By obtaining, using, and/or copying this software and/or its associated documentation, you agree that you have read, understood, and will comply with the following terms and conditions: Permission to use, copy, modify, and distribute this software and its associated documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Secret Labs AB or the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \end{verbatim} --- NEW FILE: reportingbugs.tex --- \label{reporting-bugs} Python is a mature programming language which has established a reputation for stability. In order to maintain this reputation, the developers would like to know of any deficiencies you find in Python or its documentation. Before submitting a report, you will be required to log into SourceForge; this will make it possible for the developers to contact you for additional information if needed. It is not possible to submit a bug report anonymously. All bug reports should be submitted via the Python Bug Tracker on SourceForge (\url{http://sourceforge.net/bugs/?group_id=5470}). The bug tracker offers a Web form which allows pertinent information to be entered and submitted to the developers. The first step in filing a report is to determine whether the problem has already been reported. The advantage in doing so, aside from saving the developers time, is that you learn what has been done to fix it; it may be that the problem has already been fixed for the next release, or additional information is needed (in which case you are welcome to provide it if you can!). To do this, search the bug database using the search box near the bottom of the page. If the problem you're reporting is not already in the bug tracker, go back to the Python Bug Tracker (\url{http://sourceforge.net/bugs/?group_id=5470}). Select the ``Submit a Bug'' link at the top of the page to open the bug reporting form. The submission form has a number of fields. The only fields that are required are the ``Summary'' and ``Details'' fields. For the summary, enter a \emph{very} short description of the problem; less than ten words is good. In the Details field, describe the problem in detail, including what you expected to happen and what did happen. Be sure to include the version of Python you used, whether any extension modules were involved, and what hardware and software platform you were using (including version information as appropriate). The only other field that you may want to set is the ``Category'' field, which allows you to place the bug report into a broad category (such as ``Documentation'' or ``Library''). Each bug report will be assigned to a developer who will determine what needs to be done to correct the problem. You will receive an update each time action is taken on the bug. \begin{seealso} \seetitle[http://www-mice.cs.ucl.ac.uk/multimedia/software/documentation/ReportingBugs.html]{How to Report Bugs Effectively}{Article which goes into some detail about how to create a useful bug report. This describes what kind of information is useful and why it is useful.} \seetitle[http://www.mozilla.org/quality/bug-writing-guidelines.html]{Bug Writing Guidelines}{Information about writing a good bug report. Some of this is specific to the Mozilla project, but describes general good practices.} \end{seealso} --- NEW FILE: typestruct.h --- typedef struct _typeobject { PyObject_VAR_HEAD char *tp_name; /* For printing, in format "." */ int tp_basicsize, tp_itemsize; /* For allocation */ /* Methods to implement standard operations */ destructor tp_dealloc; printfunc tp_print; getattrfunc tp_getattr; setattrfunc tp_setattr; cmpfunc tp_compare; reprfunc tp_repr; /* Method suites for standard classes */ PyNumberMethods *tp_as_number; PySequenceMethods *tp_as_sequence; PyMappingMethods *tp_as_mapping; /* More standard operations (here for binary compatibility) */ hashfunc tp_hash; ternaryfunc tp_call; reprfunc tp_str; getattrofunc tp_getattro; setattrofunc tp_setattro; /* Functions to access object as input/output buffer */ PyBufferProcs *tp_as_buffer; /* Flags to define presence of optional/expanded features */ long tp_flags; char *tp_doc; /* Documentation string */ /* Assigned meaning in release 2.0 */ /* call function for all accessible objects */ traverseproc tp_traverse; /* delete references to contained objects */ inquiry tp_clear; /* Assigned meaning in release 2.1 */ /* rich comparisons */ richcmpfunc tp_richcompare; /* weak reference enabler */ long tp_weaklistoffset; /* Added in release 2.2 */ /* Iterators */ getiterfunc tp_iter; iternextfunc tp_iternext; /* Attribute descriptor and subclassing stuff */ struct PyMethodDef *tp_methods; struct PyMemberDef *tp_members; struct PyGetSetDef *tp_getset; struct _typeobject *tp_base; PyObject *tp_dict; descrgetfunc tp_descr_get; descrsetfunc tp_descr_set; long tp_dictoffset; initproc tp_init; allocfunc tp_alloc; newfunc tp_new; freefunc tp_free; /* Low-level free-memory routine */ inquiry tp_is_gc; /* For PyObject_IS_GC */ PyObject *tp_bases; PyObject *tp_mro; /* method resolution order */ PyObject *tp_cache; PyObject *tp_subclasses; PyObject *tp_weaklist; } PyTypeObject; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:51 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:51 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/scripts byext.py, NONE, 1.1 combinerefs.py, NONE, 1.1 db2pickle.py, NONE, 1.1 diff.py, NONE, 1.1 gprof2html.py, NONE, 1.1 hotshotmain.py, NONE, 1.1 idle, NONE, 1.1 pickle2db.py, NONE, 1.1 setup.py, NONE, 1.1 texcheck.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/scripts In directory centera.de:/home/tismer/slpdev/src/2.2/src/Tools/scripts Added Files: byext.py combinerefs.py db2pickle.py diff.py gprof2html.py hotshotmain.py idle pickle2db.py setup.py texcheck.py Log Message: added files --- NEW FILE: byext.py --- #! /usr/bin/env python """Show file statistics by extension.""" import os import sys class Stats: def __init__(self): self.stats = {} def statargs(self, args): for arg in args: if os.path.isdir(arg): self.statdir(arg) elif os.path.isfile(arg): self.statfile(arg) else: sys.stderr.write("Can't find %s\n" % file) self.addstats("", "unknown", 1) def statdir(self, dir): self.addstats("", "dirs", 1) try: names = os.listdir(dir) except os.error, err: sys.stderr.write("Can't list %s: %s\n" % (file, err)) self.addstats(ext, "unlistable", 1) return names.sort() for name in names: if name.startswith(".#"): continue # Skip CVS temp files if name.endswith("~"): continue# Skip Emacs backup files full = os.path.join(dir, name) if os.path.islink(full): self.addstats("", "links", 1) elif os.path.isdir(full): self.statdir(full) else: self.statfile(full) def statfile(self, file): head, ext = os.path.splitext(file) head, base = os.path.split(file) if ext == base: ext = "" # E.g. .cvsignore is deemed not to have an extension ext = os.path.normcase(ext) if not ext: ext = "" self.addstats(ext, "files", 1) try: f = open(file, "rb") except IOError, err: sys.stderr.write("Can't open %s: %s\n" % (file, err)) self.addstats(ext, "unopenable", 1) return data = f.read() f.close() self.addstats(ext, "bytes", len(data)) if '\0' in data: self.addstats(ext, "binary", 1) return if not data: self.addstats(ext, "empty", 1) #self.addstats(ext, "chars", len(data)) lines = data.splitlines() self.addstats(ext, "lines", len(lines)) del lines words = data.split() self.addstats(ext, "words", len(words)) def addstats(self, ext, key, n): d = self.stats.setdefault(ext, {}) d[key] = d.get(key, 0) + n def report(self): exts = self.stats.keys() exts.sort() # Get the column keys columns = {} for ext in exts: columns.update(self.stats[ext]) cols = columns.keys() cols.sort() colwidth = {} colwidth["ext"] = max([len(ext) for ext in exts]) minwidth = 6 self.stats["TOTAL"] = {} for col in cols: total = 0 cw = max(minwidth, len(col)) for ext in exts: value = self.stats[ext].get(col) if value is None: w = 0 else: w = len("%d" % value) total += value cw = max(cw, w) cw = max(cw, len(str(total))) colwidth[col] = cw self.stats["TOTAL"][col] = total exts.append("TOTAL") for ext in exts: self.stats[ext]["ext"] = ext cols.insert(0, "ext") def printheader(): for col in cols: print "%*s" % (colwidth[col], col), print printheader() for ext in exts: for col in cols: value = self.stats[ext].get(col, "") print "%*s" % (colwidth[col], value), print printheader() # Another header at the bottom def main(): args = sys.argv[1:] if not args: args = [os.curdir] s = Stats() s.statargs(args) s.report() if __name__ == "__main__": main() --- NEW FILE: combinerefs.py --- #! /usr/bin/env python """ combinerefs path A helper for analyzing PYTHONDUMPREFS output. When the PYTHONDUMPREFS envar is set in a debug build, at Python shutdown time Py_Finalize() prints the list of all live objects twice: first it prints the repr() of each object while the interpreter is still fully intact. After cleaning up everything it can, it prints all remaining live objects again, but the second time just prints their addresses, refcounts, and type names (because the interpreter has been torn down, calling repr methods at this point can get into infinite loops or blow up). Save all this output into a file, then run this script passing the path to that file. The script finds both output chunks, combines them, then prints a line of output for each object still alive at the end: address refcnt typename repr address is the address of the object, in whatever format the platform C produces for a %p format code. refcnt is of the form "[" ref "]" when the object's refcount is the same in both PYTHONDUMPREFS output blocks, or "[" ref_before "->" ref_after "]" if the refcount changed. typename is object->ob_type->tp_name, extracted from the second PYTHONDUMPREFS output block. repr is repr(object), extracted from the first PYTHONDUMPREFS output block. CAUTION: If object is a container type, it may not actually contain all the objects shown in the repr: the repr was captured from the first output block, and some of the containees may have been released since then. For example, it's common for the line showing the dict of interned strings to display strings that no longer exist at the end of Py_Finalize; this can be recognized (albeit painfully) because such containees don't have a line of their own. The objects are listed in allocation order, with most-recently allocated printed first, and the first object allocated printed last. Simple examples: 00857060 [14] str '__len__' The str object '__len__' is alive at shutdown time, and both PYTHONDUMPREFS output blocks said there were 14 references to it. This is probably due to C modules that intern the string "__len__" and keep a reference to it in a file static. 00857038 [46->5] tuple () 46-5 = 41 references to the empty tuple were removed by the cleanup actions between the times PYTHONDUMPREFS produced output. 00858028 [1025->1456] str '' The string '', which is used in dictobject.c to overwrite a real key that gets deleted, grew several hundred references during cleanup. It suggests that stuff did get removed from dicts by cleanup, but that the dicts themselves are staying alive for some reason. """ import re import sys # Generate lines from fileiter. If whilematch is true, continue reading # while the regexp object pat matches line. If whilematch is false, lines # are read so long as pat doesn't match them. In any case, the first line # that doesn't match pat (when whilematch is true), or that does match pat # (when whilematch is false), is lost, and fileiter will resume at the line # following it. def read(fileiter, pat, whilematch): for line in fileiter: if bool(pat.match(line)) == whilematch: yield line else: break def combine(fname): f = file(fname) fi = iter(f) for line in read(fi, re.compile(r'^Remaining objects:$'), False): pass crack = re.compile(r'([a-zA-Z\d]+) \[(\d+)\] (.*)') addr2rc = {} addr2guts = {} before = 0 for line in read(fi, re.compile(r'^Remaining object addresses:$'), False): m = crack.match(line) if m: addr, addr2rc[addr], addr2guts[addr] = m.groups() before += 1 else: print '??? skipped:', line after = 0 for line in read(fi, crack, True): after += 1 m = crack.match(line) assert m addr, rc, guts = m.groups() # guts is type name here if addr not in addr2rc: print '??? new object created while tearing down:', line.rstrip() continue print addr, if rc == addr2rc[addr]: print '[%s]' % rc, else: print '[%s->%s]' % (addr2rc[addr], rc), print guts, addr2guts[addr] f.close() print "%d objects before, %d after" % (before, after) if __name__ == '__main__': combine(sys.argv[1]) --- NEW FILE: db2pickle.py --- #!/usr/bin/env python """ Synopsis: %(prog)s [-h|-g|-b|-r|-a] dbfile [ picklefile ] Convert the database file given on the command line to a pickle representation. The optional flags indicate the type of the database: -a - open using anydbm -b - open as bsddb btree file -d - open as dbm file -g - open as gdbm file -h - open as bsddb hash file -r - open as bsddb recno file The default is hash. If a pickle file is named it is opened for write access (deleting any existing data). If no pickle file is named, the pickle output is written to standard output. """ import getopt try: import bsddb except ImportError: bsddb = None try: import dbm except ImportError: dbm = None try: import gdbm except ImportError: gdbm = None try: import anydbm except ImportError: anydbm = None import sys try: import cPickle as pickle except ImportError: import pickle prog = sys.argv[0] def usage(): sys.stderr.write(__doc__ % globals()) def main(args): try: opts, args = getopt.getopt(args, "hbrdag", ["hash", "btree", "recno", "dbm", "gdbm", "anydbm"]) except getopt.error: usage() return 1 if len(args) == 0 or len(args) > 2: usage() return 1 elif len(args) == 1: dbfile = args[0] pfile = sys.stdout else: dbfile = args[0] try: pfile = open(args[1], 'wb') except IOError: sys.stderr.write("Unable to open %s\n" % args[1]) return 1 dbopen = None for opt, arg in opts: if opt in ("-h", "--hash"): try: dbopen = bsddb.hashopen except AttributeError: sys.stderr.write("bsddb module unavailable.\n") return 1 elif opt in ("-b", "--btree"): try: dbopen = bsddb.btopen except AttributeError: sys.stderr.write("bsddb module unavailable.\n") return 1 elif opt in ("-r", "--recno"): try: dbopen = bsddb.rnopen except AttributeError: sys.stderr.write("bsddb module unavailable.\n") return 1 elif opt in ("-a", "--anydbm"): try: dbopen = anydbm.open except AttributeError: sys.stderr.write("anydbm module unavailable.\n") return 1 elif opt in ("-g", "--gdbm"): try: dbopen = gdbm.open except AttributeError: sys.stderr.write("gdbm module unavailable.\n") return 1 elif opt in ("-d", "--dbm"): try: dbopen = dbm.open except AttributeError: sys.stderr.write("dbm module unavailable.\n") return 1 if dbopen is None: if bsddb is None: sys.stderr.write("bsddb module unavailable - ") sys.stderr.write("must specify dbtype.\n") return 1 else: dbopen = bsddb.hashopen try: db = dbopen(dbfile, 'r') except bsddb.error: sys.stderr.write("Unable to open %s. " % dbfile) sys.stderr.write("Check for format or version mismatch.\n") return 1 for k in db.keys(): pickle.dump((k, db[k]), pfile, 1==1) db.close() pfile.close() return 0 if __name__ == "__main__": sys.exit(main(sys.argv[1:])) --- NEW FILE: diff.py --- """ Command line interface to difflib.py providing diffs in three formats: * ndiff: lists every line and highlights interline changes. * context: highlights clusters of changes in a before/after format * unified: highlights clusters of changes in an inline format. """ import sys, os, time, difflib, optparse usage = "usage: %prog [options] fromfile tofile" parser = optparse.OptionParser(usage) parser.add_option("-c", action="store_true", default=False, help='Produce a context format diff (default)') parser.add_option("-u", action="store_true", default=False, help='Produce a unified format diff') parser.add_option("-n", action="store_true", default=False, help='Produce a ndiff format diff') parser.add_option("-l", "--lines", type="int", default=3, help='Set number of context lines (default 3)') (options, args) = parser.parse_args() if len(args) == 0: parser.print_help() sys.exit(1) if len(args) != 2: parser.error("need to specify both a fromfile and tofile") n = options.lines fromfile, tofile = args fromdate = time.ctime(os.stat(fromfile).st_mtime) todate = time.ctime(os.stat(tofile).st_mtime) fromlines = open(fromfile).readlines() tolines = open(tofile).readlines() if options.u: diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) elif options.n: diff = difflib.ndiff(fromlines, tolines) else: diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n) sys.stdout.writelines(diff) --- NEW FILE: gprof2html.py --- #! /usr/bin/env python2.3 """Transform gprof(1) output into useful HTML.""" import re, os, sys, cgi, webbrowser header = """\ gprof output (%s)
"""

trailer = """\
""" def add_escapes(input): for line in input: yield cgi.escape(line) def main(): filename = "gprof.out" if sys.argv[1:]: filename = sys.argv[1] outputfilename = filename + ".html" input = add_escapes(file(filename)) output = file(outputfilename, "w") output.write(header % filename) for line in input: output.write(line) if line.startswith(" time"): break labels = {} for line in input: m = re.match(r"(.* )(\w+)\n", line) if not m: output.write(line) break stuff, fname = m.group(1, 2) labels[fname] = fname output.write('%s%s\n' % (stuff, fname, fname, fname)) for line in input: output.write(line) if line.startswith("index % time"): break for line in input: m = re.match(r"(.* )(\w+)(( <cycle.*>)? \[\d+\])\n", line) if not m: output.write(line) if line.startswith("Index by function name"): break continue prefix, fname, suffix = m.group(1, 2, 3) if fname not in labels: output.write(line) continue if line.startswith("["): output.write('%s%s%s\n' % (prefix, fname, fname, fname, suffix)) else: output.write('%s%s%s\n' % (prefix, fname, fname, suffix)) for line in input: for part in re.findall(r"(\w+(?:\.c)?|\W+)", line): if part in labels: part = '%s' % (part, part) output.write(part) output.write(trailer) output.close() webbrowser.open("file:" + os.path.abspath(outputfilename)) main() --- NEW FILE: hotshotmain.py --- #!/usr/bin/env python # -*- coding: iso-8859-1 -*- """ Run a Python script under hotshot's control. Adapted from a posting on python-dev by Walter D?rwald usage %prog [ %prog args ] filename [ filename args ] Any arguments after the filename are used as sys.argv for the filename. """ import sys import optparse import os import hotshot import hotshot.stats PROFILE = "hotshot.prof" def run_hotshot(filename, profile, args): prof = hotshot.Profile(profile) sys.path.insert(0, os.path.dirname(filename)) sys.argv = [filename] + args prof.run("execfile(%r)" % filename) prof.close() stats = hotshot.stats.load(profile) stats.sort_stats("time", "calls") # print_stats uses unadorned print statements, so the only way # to force output to stderr is to reassign sys.stdout temporarily save_stdout = sys.stdout sys.stdout = sys.stderr stats.print_stats() sys.stdout = save_stdout return 0 def main(args): parser = optparse.OptionParser(__doc__) parser.add_option("-p", "--profile", action="store", default=PROFILE, dest="profile", help='Specify profile file to use') (options, args) = parser.parse_args(args) if len(args) == 0: parser.print_help("missing script to execute") return 1 filename = args[0] return run_hotshot(filename, options.profile, args[1:]) if __name__ == "__main__": sys.exit(main(sys.argv[1:])) --- NEW FILE: idle --- #! /usr/bin/env python from idlelib.PyShell import main main() --- NEW FILE: pickle2db.py --- #!/usr/bin/env python """ Synopsis: %(prog)s [-h|-b|-g|-r|-a|-d] [ picklefile ] dbfile Read the given picklefile as a series of key/value pairs and write to a new database. If the database already exists, any contents are deleted. The optional flags indicate the type of the output database: -a - open using anydbm -b - open as bsddb btree file -d - open as dbm file -g - open as gdbm file -h - open as bsddb hash file -r - open as bsddb recno file The default is hash. If a pickle file is named it is opened for read access. If no pickle file is named, the pickle input is read from standard input. Note that recno databases can only contain integer keys, so you can't dump a hash or btree database using db2pickle.py and reconstitute it to a recno database with %(prog)s unless your keys are integers. """ import getopt try: import bsddb except ImportError: bsddb = None try: import dbm except ImportError: dbm = None try: import gdbm except ImportError: gdbm = None try: import anydbm except ImportError: anydbm = None import sys try: import cPickle as pickle except ImportError: import pickle prog = sys.argv[0] def usage(): sys.stderr.write(__doc__ % globals()) def main(args): try: opts, args = getopt.getopt(args, "hbrdag", ["hash", "btree", "recno", "dbm", "anydbm", "gdbm"]) except getopt.error: usage() return 1 if len(args) == 0 or len(args) > 2: usage() return 1 elif len(args) == 1: pfile = sys.stdin dbfile = args[0] else: try: pfile = open(args[0], 'rb') except IOError: sys.stderr.write("Unable to open %s\n" % args[0]) return 1 dbfile = args[1] dbopen = None for opt, arg in opts: if opt in ("-h", "--hash"): try: dbopen = bsddb.hashopen except AttributeError: sys.stderr.write("bsddb module unavailable.\n") return 1 elif opt in ("-b", "--btree"): try: dbopen = bsddb.btopen except AttributeError: sys.stderr.write("bsddb module unavailable.\n") return 1 elif opt in ("-r", "--recno"): try: dbopen = bsddb.rnopen except AttributeError: sys.stderr.write("bsddb module unavailable.\n") return 1 elif opt in ("-a", "--anydbm"): try: dbopen = anydbm.open except AttributeError: sys.stderr.write("anydbm module unavailable.\n") return 1 elif opt in ("-g", "--gdbm"): try: dbopen = gdbm.open except AttributeError: sys.stderr.write("gdbm module unavailable.\n") return 1 elif opt in ("-d", "--dbm"): try: dbopen = dbm.open except AttributeError: sys.stderr.write("dbm module unavailable.\n") return 1 if dbopen is None: if bsddb is None: sys.stderr.write("bsddb module unavailable - ") sys.stderr.write("must specify dbtype.\n") return 1 else: dbopen = bsddb.hashopen try: db = dbopen(dbfile, 'c') except bsddb.error: sys.stderr.write("Unable to open %s. " % dbfile) sys.stderr.write("Check for format or version mismatch.\n") return 1 else: for k in db.keys(): del db[k] while 1: try: (key, val) = pickle.load(pfile) except EOFError: break db[key] = val db.close() pfile.close() return 0 if __name__ == "__main__": sys.exit(main(sys.argv[1:])) --- NEW FILE: setup.py --- from distutils.core import setup setup( scripts=[ 'byteyears.py', 'checkpyc.py', 'copytime.py', 'crlf.py', 'dutree.py', 'ftpmirror.py', 'h2py.py', 'lfcr.py', 'logmerge.py', '../../Lib/tabnanny.py', '../../Lib/timeit.py', 'untabify.py', ], ) --- NEW FILE: texcheck.py --- """ TeXcheck.py -- rough syntax checking on Python style LaTeX documents. Written by Raymond D. Hettinger Copyright (c) 2003 Python Software Foundation. All rights reserved. Designed to catch common markup errors including: * Unbalanced or mismatched parenthesis, brackets, and braces. * Unbalanced or mismatched \\begin and \\end blocks. * Misspelled or invalid LaTeX commands. * Use of forward slashes instead of backslashes for commands. * Table line size mismatches. Sample command line usage: python texcheck.py -k chapterheading -m lib/librandomtex *.tex Options: -m Munge parenthesis and brackets. [0,n) would normally mismatch. -k keyword: Keyword is a valid LaTeX command. Do not include the backslash. -d: Delimiter check only (useful for non-LaTeX files). -h: Help -s lineno: Start at lineno (useful for skipping complex sections). -v: Verbose. Trace the matching of //begin and //end blocks. """ import re import sets import sys import getopt from itertools import izip, count, islice import glob cmdstr = r""" \section \module \declaremodule \modulesynopsis \moduleauthor \sectionauthor \versionadded \code \class \method \begin \optional \var \ref \end \subsection \lineiii \hline \label \indexii \textrm \ldots \keyword \stindex \index \item \note \withsubitem \ttindex \footnote \citetitle \samp \opindex \noindent \exception \strong \dfn \ctype \obindex \character \indexiii \function \bifuncindex \refmodule \refbimodindex \subsubsection \nodename \member \chapter \emph \ASCII \UNIX \regexp \program \production \token \productioncont \term \grammartoken \lineii \seemodule \file \EOF \documentclass \usepackage \title \input \maketitle \ifhtml \fi \url \Cpp \tableofcontents \kbd \programopt \envvar \refstmodindex \cfunction \constant \NULL \moreargs \cfuncline \cdata \textasciicircum \n \ABC \setindexsubitem \versionchanged \deprecated \seetext \newcommand \POSIX \pep \warning \rfc \verbatiminput \methodline \textgreater \seetitle \lineiv \funclineni \ulink \manpage \funcline \dataline \unspecified \textbackslash \mimetype \mailheader \seepep \textunderscore \longprogramopt \infinity \plusminus \shortversion \version \refmodindex \seerfc \makeindex \makemodindex \renewcommand \indexname \appendix \protect \indexiv \mbox \textasciitilde \platform \seeurl \leftmargin \labelwidth \localmoduletable \LaTeX \copyright \memberline \backslash \pi \centerline \caption \vspace \textwidth \menuselection \textless \makevar \csimplemacro \menuselection \bfcode \sub \release \email \kwindex \refexmodindex \filenq \e \menuselection \exindex \linev \newsgroup \verbatim \setshortversion """ def matchclose(c_lineno, c_symbol, openers, pairmap): "Verify that closing delimiter matches most recent opening delimiter" try: o_lineno, o_symbol = openers.pop() except IndexError: print "\nDelimiter mismatch. On line %d, encountered closing '%s' without corresponding open" % (c_lineno, c_symbol) return if o_symbol in pairmap.get(c_symbol, [c_symbol]): return print "\nOpener '%s' on line %d was not closed before encountering '%s' on line %d" % (o_symbol, o_lineno, c_symbol, c_lineno) return def checkit(source, opts, morecmds=[]): """Check the LaTeX formatting in a sequence of lines. Opts is a mapping of options to option values if any: -m munge parenthesis and brackets -d delimiters only checking -v verbose trace of delimiter matching -s lineno: linenumber to start scan (default is 1). Morecmds is a sequence of LaTeX commands (without backslashes) that are to be considered valid in the scan. """ texcmd = re.compile(r'\\[A-Za-z]+') falsetexcmd = re.compile(r'\/([A-Za-z]+)') # Mismarked with forward slash validcmds = sets.Set(cmdstr.split()) for cmd in morecmds: validcmds.add('\\' + cmd) if '-m' in opts: pairmap = {']':'[(', ')':'(['} # Munged openers else: pairmap = {']':'[', ')':'('} # Normal opener for a given closer openpunct = sets.Set('([') # Set of valid openers delimiters = re.compile(r'\\(begin|end){([_a-zA-Z]+)}|([()\[\]])') braces = re.compile(r'({)|(})') doubledwords = re.compile(r'(\b[A-za-z]+\b) \b\1\b') spacingmarkup = re.compile(r'\\(ABC|ASCII|C|Cpp|EOF|infinity|NULL|plusminus|POSIX|UNIX)\s') openers = [] # Stack of pending open delimiters bracestack = [] # Stack of pending open braces tablestart = re.compile(r'\\begin{(?:long)?table([iv]+)}') tableline = re.compile(r'\\line([iv]+){') tableend = re.compile(r'\\end{(?:long)?table([iv]+)}') tablelevel = '' tablestartline = 0 startline = int(opts.get('-s', '1')) lineno = 0 for lineno, line in izip(count(startline), islice(source, startline-1, None)): line = line.rstrip() # Check balancing of open/close parenthesis, brackets, and begin/end blocks for begend, name, punct in delimiters.findall(line): if '-v' in opts: print lineno, '|', begend, name, punct, if begend == 'begin' and '-d' not in opts: openers.append((lineno, name)) elif punct in openpunct: openers.append((lineno, punct)) elif begend == 'end' and '-d' not in opts: matchclose(lineno, name, openers, pairmap) elif punct in pairmap: matchclose(lineno, punct, openers, pairmap) if '-v' in opts: print ' --> ', openers # Balance opening and closing braces for open, close in braces.findall(line): if open == '{': bracestack.append(lineno) if close == '}': try: bracestack.pop() except IndexError: print r'Warning, unmatched } on line %s.' % (lineno,) # Optionally, skip LaTeX specific checks if '-d' in opts: continue # Warn whenever forward slashes encountered with a LaTeX command for cmd in falsetexcmd.findall(line): if '822' in line or '.html' in line: continue # Ignore false positives for urls and for /rfc822 if '\\' + cmd in validcmds: print 'Warning, forward slash used on line %d with cmd: /%s' % (lineno, cmd) # Check for markup requiring {} for correct spacing for cmd in spacingmarkup.findall(line): print r'Warning, \%s should be written as \%s{} on line %d' % (cmd, cmd, lineno) # Validate commands nc = line.find(r'\newcommand') if nc != -1: start = line.find('{', nc) end = line.find('}', start) validcmds.add(line[start+1:end]) for cmd in texcmd.findall(line): if cmd not in validcmds: print r'Warning, unknown tex cmd on line %d: \%s' % (lineno, cmd) # Check table levels (make sure lineii only inside tableii) m = tablestart.search(line) if m: tablelevel = m.group(1) tablestartline = lineno m = tableline.search(line) if m and m.group(1) != tablelevel: print r'Warning, \line%s on line %d does not match \table%s on line %d' % (m.group(1), lineno, tablelevel, tablestartline) if tableend.search(line): tablelevel = '' # Style guide warnings if 'e.g.' in line or 'i.e.' in line: print r'Style warning, avoid use of i.e or e.g. on line %d' % (lineno,) for dw in doubledwords.findall(line): print r'Doubled word warning. "%s" on line %d' % (dw, lineno) lastline = lineno for lineno, symbol in openers: print "Unmatched open delimiter '%s' on line %d" % (symbol, lineno) for lineno in bracestack: print "Unmatched { on line %d" % (lineno,) print 'Done checking %d lines.' % (lastline,) return 0 def main(args=None): if args is None: args = sys.argv[1:] optitems, arglist = getopt.getopt(args, "k:mdhs:v") opts = dict(optitems) if '-h' in opts or args==[]: print __doc__ return 0 if len(arglist) < 1: print 'Please specify a file to be checked' return 1 for i, filespec in enumerate(arglist): if '*' in filespec or '?' in filespec: arglist[i:i+1] = glob.glob(filespec) morecmds = [v for k,v in optitems if k=='-k'] err = [] for filename in arglist: print '=' * 30 print "Checking", filename try: f = open(filename) except IOError: print 'Cannot open file %s.' % arglist[0] return 2 try: err.append(checkit(f, opts, morecmds)) finally: f.close() return max(err) if __name__ == '__main__': sys.exit(main()) _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:30 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:30 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj/MainMenu.nib classes.nib, NONE, 1.1 info.nib, NONE, 1.1 objects.nib, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj/MainMenu.nib In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj/MainMenu.nib Added Files: classes.nib info.nib objects.nib Log Message: added files --- NEW FILE: classes.nib --- { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, { ACTIONS = {showPreferences = id; }; CLASS = MyAppDelegate; LANGUAGE = ObjC; SUPERCLASS = NSObject; } ); IBVersion = 1; } --- NEW FILE: info.nib --- IBDocumentLocation 99 33 356 240 0 0 800 578 IBEditorPositions 29 82 396 318 44 0 0 800 578 IBFramework Version 263.2 IBOpenObjects 29 IBSystem Version 5S66 --- NEW FILE: objects.nib ---  typedstream???@???NSIBObjectData? NSMenuItem???????NSMenu? ?????? Clear Menu??? Save As...????S?? Select All????a?? NSMenuItem??????6??????9?????? NSMenuItem1????? NSMenuItem10??????MainMenu??6??? NSMenuItem?????? NSMenuItem??????121????? NSMenuItem7???F?????3??$??? NSMenuItem??(???2????? NSMenuItem3????? NSMenuItem13???F?????1111?? terminate:????h??????orderFrontStandardAboutPanel:????h??????hideOtherApplications:????h??????hide:????h??????unhideAllApplications:????h??????cut:????h??????paste:????h??????redo:????h????? selectAll:????h??????undo:????h??????copy:????h? _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:50:56 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:50:56 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Doc/lib caseless.py, 1.1, NONE libasynchat.tex, 1.1, NONE libbz2.tex, 1.1, NONE libcollections.tex, 1.1, NONE libconsts.tex, 1.1, NONE libcsv.tex, 1.1, NONE libdatetime.tex, 1.1, NONE libdocxmlrpc.tex, 1.1, NONE libdumbdbm.tex, 1.1, NONE libdummythread.tex, 1.1, NONE libdummythreading.tex, 1.1, NONE libfuture.tex, 1.1, NONE libheapq.tex, 1.1, NONE libhotshot.tex, 1.1, NONE libitertools.tex, 1.1, NONE liblogging.tex, 1.1, NONE liboptparse.tex, 1.1, NONE libossaudiodev.tex, 1.1, NONE libpkgutil.tex, 1.1, NONE libplatform.tex, 1.1, NONE libsets.tex, 1.1, NONE libstringprep.tex, 1.1, NONE libtarfile.tex, 1.1, NONE libtest.tex, 1.1, NONE libtextwrap.tex, 1.1, NONE libtimeit.tex, 1.1, NONE mimelib.tex, 1.1, NONE required_1.py, 1.1, NONE required_2.py, 1.1, NONE tzinfo-examples.py, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Doc/lib In directory centera.de:/home/tismer/slpdev/src/2.2/src/Doc/lib Removed Files: caseless.py libasynchat.tex libbz2.tex libcollections.tex libconsts.tex libcsv.tex libdatetime.tex libdocxmlrpc.tex libdumbdbm.tex libdummythread.tex libdummythreading.tex libfuture.tex libheapq.tex libhotshot.tex libitertools.tex liblogging.tex liboptparse.tex libossaudiodev.tex libpkgutil.tex libplatform.tex libsets.tex libstringprep.tex libtarfile.tex libtest.tex libtextwrap.tex libtimeit.tex mimelib.tex required_1.py required_2.py tzinfo-examples.py Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- caseless.py DELETED --- --- libasynchat.tex DELETED --- --- libbz2.tex DELETED --- --- libcollections.tex DELETED --- --- libconsts.tex DELETED --- --- libcsv.tex DELETED --- --- libdatetime.tex DELETED --- --- libdocxmlrpc.tex DELETED --- --- libdumbdbm.tex DELETED --- --- libdummythread.tex DELETED --- --- libdummythreading.tex DELETED --- --- libfuture.tex DELETED --- --- libheapq.tex DELETED --- --- libhotshot.tex DELETED --- --- libitertools.tex DELETED --- --- liblogging.tex DELETED --- --- liboptparse.tex DELETED --- --- libossaudiodev.tex DELETED --- --- libpkgutil.tex DELETED --- --- libplatform.tex DELETED --- --- libsets.tex DELETED --- --- libstringprep.tex DELETED --- --- libtarfile.tex DELETED --- --- libtest.tex DELETED --- --- libtextwrap.tex DELETED --- --- libtimeit.tex DELETED --- --- mimelib.tex DELETED --- --- required_1.py DELETED --- --- required_2.py DELETED --- --- tzinfo-examples.py DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:46 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:46 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Doc/commontex - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Doc/commontex In directory centera.de:/home/tismer/slpdev/src/2.2/src/Doc/commontex Log Message: Directory /home/cvs/slpdev/src/2.2/src/Doc/commontex added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:05 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:05 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Doc/mac libaetools.tex, NONE, 1.1 libautogil.tex, NONE, 1.1 libgensuitemodule.tex, NONE, 1.1 libscrap.tex, NONE, 1.1 scripting.tex, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Doc/mac In directory centera.de:/home/tismer/slpdev/src/2.2/src/Doc/mac Added Files: libaetools.tex libautogil.tex libgensuitemodule.tex libscrap.tex scripting.tex Log Message: added files --- NEW FILE: libaetools.tex --- \section{\module{aetools} --- OSA client support} \declaremodule{standard}{aetools} \platform{Mac} %\moduleauthor{Jack Jansen?}{email} \modulesynopsis{Basic support for sending Apple Events} \sectionauthor{Jack Jansen}{Jack.Jansen at cwi.nl} The \module{aetools} module contains the basic functionality on which Python AppleScript client support is built. It also imports and re-exports the core functionality of the \module{aetypes} and \module{aepack} modules. The stub packages generated by \module{gensuitemodule} import the relevant portions of \module{aetools}, so usually you do not need to import it yourself. The exception to this is when you cannot use a generated suite package and need lower-level access to scripting. The \module{aetools} module itself uses the AppleEvent support provided by the \module{Carbon.AE} module. This has one drawback: you need access to the window manager, see section \ref{osx-gui-scripts} for details. This restriction may be lifted in future releases. The \module{aetools} module defines the following functions: \begin{funcdesc}{packevent}{ae, parameters, attributes} Stores parameters and attributes in a pre-created \code{Carbon.AE.AEDesc} object. \code{parameters} and \code{attributes} are dictionaries mapping 4-character OSA parameter keys to Python objects. The objects are packed using \code{aepack.pack()}. \end{funcdesc} \begin{funcdesc}{unpackevent}{ae\optional{, formodulename}} Recursively unpacks a \code{Carbon.AE.AEDesc} event to Python objects. The function returns the parameter dictionary and the attribute dictionary. The \code{formodulename} argument is used by generated stub packages to control where AppleScript classes are looked up. \end{funcdesc} \begin{funcdesc}{keysubst}{arguments, keydict} Converts a Python keyword argument dictionary \code{arguments} to the format required by \code{packevent} by replacing the keys, which are Python identifiers, by the four-character OSA keys according to the mapping specified in \code{keydict}. Used by the generated suite packages. \end{funcdesc} \begin{funcdesc}{enumsubst}{arguments, key, edict} If the \code{arguments} dictionary contains an entry for \code{key} convert the value for that entry according to dictionary \code{edict}. This converts human-readable Python enumeration names to the OSA 4-character codes. Used by the generated suite packages. \end{funcdesc} The \module{aetools} module defines the following class: \begin{classdesc}{TalkTo}{\optional{signature=None, start=0, timeout=0}} Base class for the proxy used to talk to an application. \code{signature} overrides the class attribute \code{_signature} (which is usually set by subclasses) and is the 4-char creator code defining the application to talk to. \code{start} can be set to true to enable running the application on class instantiation. \code{timeout} can be specified to change the default timeout used while waiting for an AppleEvent reply. \end{classdesc} \begin{methoddesc}{_start}{} Test whether the application is running, and attempt to start it if not. \end{methoddesc} \begin{methoddesc}{send}{code, subcode\optional{, parameters, attributes}} Create the AppleEvent \code{Carbon.AE.AEDesc} for the verb with the OSA designation \code{code, subcode} (which are the usual 4-character strings), pack the \code{parameters} and \code{attributes} into it, send it to the target application, wait for the reply, unpack the reply with \code{unpackevent} and return the reply appleevent, the unpacked return values as a dictionary and the return attributes. \end{methoddesc} --- NEW FILE: libautogil.tex --- \section{\module{autoGIL} --- Global Interpreter Lock handling in event loops} \declaremodule{extension}{autoGIL} \platform{Mac} \modulesynopsis{Global Interpreter Lock handling in event loops.} \moduleauthor{Just van Rossum}{just at letterror.com} The \module{autoGIL} module provides a function \function{installAutoGIL} that automatically locks and unlocks Python's Global Interpreter Lock when running an event loop. \begin{excdesc}{AutoGILError} Raised if the observer callback cannot be installed, for example because the current thread does not have a run loop. \end{excdesc} \begin{funcdesc}{installAutoGIL}{} Install an observer callback in the event loop (CFRunLoop) for the current thread, that will lock and unlock the Global Interpreter Lock (GIL) at appropriate times, allowing other Python threads to run while the event loop is idle. Availability: OSX 10.1 or later. \end{funcdesc} --- NEW FILE: libgensuitemodule.tex --- \section{\module{gensuitemodule} --- Generate OSA stub packages} \declaremodule{standard}{gensuitemodule} \platform{Mac} %\moduleauthor{Jack Jansen?}{email} \modulesynopsis{Create a stub package from an OSA dictionary} \sectionauthor{Jack Jansen}{Jack.Jansen at cwi.nl} The \module{gensuitemodule} module creates a Python package implementing stub code for the AppleScript suites that are implemented by a specific application, according to its AppleScript dictionary. It is usually invoked by the user through the \program{PythonIDE}, but it can also be run as a script from the command line (pass \longprogramopt{help} for help on the options) or imported from Python code. For an example of its use see \file{Mac/scripts/genallsuites.py} in a source distribution, which generates the stub packages that are included in the standard library. It defines the following public functions: \begin{funcdesc}{is_scriptable}{application} Returns true if \code{application}, which should be passed as a pathname, appears to be scriptable. Take the return value with a grain of salt: \program{Internet Explorer} appears not to be scriptable but definitely is. \end{funcdesc} \begin{funcdesc}{processfile}{application\optional{, output, basepkgname, edit_modnames, creatorsignature, dump, verbose}} Create a stub package for \code{application}, which should be passed as a full pathname. For a \file{.app} bundle this is the pathname to the bundle, not to the executable inside the bundle; for an unbundled CFM application you pass the filename of the application binary. This function asks the application for its OSA terminology resources, decodes these resources and uses the resultant data to create the Python code for the package implementing the client stubs. \code{output} is the pathname where the resulting package is stored, if not specified a standard "save file as" dialog is presented to the user. \code{basepkgname} is the base package on which this package will build, and defaults to \module{StdSuites}. Only when generating \module{StdSuites} itself do you need to specify this. \code{edit_modnames} is a dictionary that can be used to change modulenames that are too ugly after name mangling. \code{creator_signature} can be used to override the 4-char creator code, which is normally obtained from the \file{PkgInfo} file in the package or from the CFM file creator signature. When \code{dump} is given it should refer to a file object, and \code{processfile} will stop after decoding the resources and dump the Python representation of the terminology resources to this file. \code{verbose} should also be a file object, and specifying it will cause \code{processfile} to tell you what it is doing. \end{funcdesc} \begin{funcdesc}{processfile_fromresource}{application\optional{, output, basepkgname, edit_modnames, creatorsignature, dump, verbose}} This function does the same as \code{processfile}, except that it uses a different method to get the terminology resources. It opens \code{application} as a resource file and reads all \code{"aete"} and \code{"aeut"} resources from this file. \end{funcdesc} --- NEW FILE: libscrap.tex --- \section{\module{Carbon.Scrap} --- Scrap Manager} \declaremodule{standard}{Carbon.Scrap} \platform{Mac} \modulesynopsis{The Scrap Manager provides basic services for implementing cut \&\ paste and clipboard operations.} This module is only fully available on MacOS9 and earlier under classic PPC MacPython. Very limited functionality is available under Carbon MacPython. The Scrap\index{Scrap Manager} Manager supports the simplest form of cut \&\ paste operations on the Macintosh. It can be use for both inter- and intra-application clipboard operations. The \module{Scrap} module provides low-level access to the functions of the Scrap Manager. It contains the following functions: \begin{funcdesc}{InfoScrap}{} Return current information about the scrap. The information is encoded as a tuple containing the fields \code{(\var{size}, \var{handle}, \var{count}, \var{state}, \var{path})}. \begin{tableii}{l|l}{var}{Field}{Meaning} \lineii{size}{Size of the scrap in bytes.} \lineii{handle}{Resource object representing the scrap.} \lineii{count}{Serial number of the scrap contents.} \lineii{state}{Integer; positive if in memory, \code{0} if on disk, negative if uninitialized.} \lineii{path}{Filename of the scrap when stored on disk.} \end{tableii} \end{funcdesc} \begin{seealso} \seetitle[http://developer.apple.com/documentation/mac/MoreToolbox/MoreToolbox-109.html] {Scrap Manager}{Apple's documentation for the Scrap Manager gives a lot of useful information about using the Scrap Manager in applications.} \end{seealso} --- NEW FILE: scripting.tex --- \chapter{MacPython OSA Modules \label{scripting}} Python has a fairly complete implementation of the Open Scripting Architecure (OSA, also commonly referred to as AppleScript), allowing you to control scriptable applications from your Python program, and with a fairly pythonic interface. For a description of the various components of AppleScript and OSA, and to get an understanding of the architecture and terminology, you should read Apple's documentation. The "Applescript Language Guide" explains the conceptual model and the terminology, and documents the standard suite. The "Open Scripting Architecture" document explains how to use OSA from an application programmers point of view. In the Apple Help Viewer these book sare located in the Developer Documentation, Core Technologies section. As an example of scripting an application, the following piece of AppleScript will get the name of the frontmost \program{Finder} window and print it: \begin{verbatim} tell application "Finder" get name of window 1 end tell \end{verbatim} In Python, the following code fragment will do the same: \begin{verbatim} import Finder f = Finder.Finder() print f.get(f.window(1).name) \end{verbatim} As distributed the Python library includes packages that implement the standard suites, plus packages that interface to a small number of common applications. To send AppleEvents to an application you must first create the Python package interfacing to the terminology of the application (what \program{Script Editor} calls the "Dictionary"). This can be done from within the \program{PythonIDE} or by running the \file{gensuitemodule.py} module as a standalone program from the command line. The generated output is a package with a number of modules, one for every suite used in the program plus an \module{__init__} module to glue it all together. The Python inheritance graph follows the AppleScript inheritance graph, so if a programs dictionary specifies that it includes support for the Standard Suite, but extends one or two verbs with extra arguments then the output suite will contain a module \module{Standard_Suite} that imports and re-exports everything from \module{StdSuites.Standard_Suite} but overrides the methods that have extra functionality. The output of \module{gensuitemodule} is pretty readable, and contains the documentation that was in the original AppleScript dictionary in Python docstrings, so reading it is a good source of documentation. The output package implements a main class with the same name as the package which contains all the AppleScript verbs as methods, with the direct object as the first argument and all optional parameters as keyword arguments. AppleScript classes are also implemented as Python classes, as are comparisons and all the other thingies. The main Python class implementing the verbs also allows access to the properties and elements declared in the AppleScript class "application". In the current release that is as far as the object orientation goes, so in the example above we need to use \code{f.get(f.window(1).name)} instead of the more Pythonic \code{f.window(1).name.get()}. If an AppleScript identifier is not a Python identifier the name is mangled according to a small number of rules: \begin{itemize} \item spaces are replaced with underscores \item other non-alphanumeric characters are replaced with \code{_xx_} where \code{xx} is the hexadecimal character value \item any Python reserved word gets an underscore appended \end{itemize} Python also has support for creating scriptable applications in Python, but The following modules are relevant to MacPython AppleScript support: \localmoduletable In addition, support modules have been pre-generated for \module{Finder}, \module{Terminal}, \module{Explorer}, \module{Netscape}, \module{CodeWarrior}, \module{SystemEvents} and \module{StdSuites}. \input{libgensuitemodule} \input{libaetools} \input{libaepack} \input{libaetypes} \input{libminiae} _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 22:23:56 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 22:23:56 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Stackless/module stacklessmodule.c, 1.168, 1.169 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Stackless/module In directory centera.de:/tmp/cvs-serv27260/module Modified Files: stacklessmodule.c Log Message: added more compatibility patches Index: stacklessmodule.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Stackless/module/stacklessmodule.c,v retrieving revision 1.168 retrieving revision 1.169 diff -C2 -d -r1.168 -r1.169 *** stacklessmodule.c 29 Apr 2004 17:58:59 -0000 1.168 --- stacklessmodule.c 1 May 2004 20:23:54 -0000 1.169 *************** *** 671,675 **** /* finding refcount problems */ ! #ifdef Py_TRACE_REFS static char _get_refinfo__doc__[] = --- 671,675 ---- /* finding refcount problems */ ! #if defined(Py_TRACE_REFS) && defined(PyAPI_23) static char _get_refinfo__doc__[] = *************** *** 752,756 **** _peek__doc__}, #endif ! #ifdef Py_TRACE_REFS {"_get_refinfo", (PCF)_get_refinfo, METH_NOARGS, _get_refinfo__doc__}, --- 752,756 ---- _peek__doc__}, #endif ! #if defined(Py_TRACE_REFS) && defined(PyAPI_23) {"_get_refinfo", (PCF)_get_refinfo, METH_NOARGS, _get_refinfo__doc__}, _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 18:58:06 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 18:58:06 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Objects typeobject.c, 1.8, 1.9 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Objects In directory centera.de:/tmp/cvs-serv22484 Modified Files: typeobject.c Log Message: old bugs showing up :-) Index: typeobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Objects/typeobject.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** typeobject.c 1 May 2004 20:31:00 -0000 1.8 --- typeobject.c 2 May 2004 16:58:04 -0000 1.9 *************** *** 202,206 **** if (PyType_IS_GC(type)) ! obj = _PyObject_GC_Malloc(type, nitems); else obj = PyObject_MALLOC(size); --- 202,206 ---- if (PyType_IS_GC(type)) ! obj = _PyObject_GC_Malloc(type, nitems+1); else obj = PyObject_MALLOC(size); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:18 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:18 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/_builtinSuites __init__.py, NONE, 1.1 builtin_Suite.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/_builtinSuites In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/_builtinSuites Added Files: __init__.py builtin_Suite.py Log Message: added files --- NEW FILE: __init__.py --- """ Manually generated suite used as base class for StdSuites Required and Standard suites. This is needed because the events and enums in this suite belong in the Required suite according to the Apple docs, but they often seem to be in the Standard suite. """ import aetools import builtin_Suite _code_to_module = { 'reqd' : builtin_Suite, 'core' : builtin_Suite, } _code_to_fullname = { 'reqd' : ('_builtinSuites.builtin_Suite', 'builtin_Suite'), 'core' : ('_builtinSuites.builtin_Suite', 'builtin_Suite'), } from builtin_Suite import * class _builtinSuites(builtin_Suite_Events, aetools.TalkTo): _signature = 'ascr' --- NEW FILE: builtin_Suite.py --- """Suite builtin_Suite: Every application supports open, reopen, print, run, and quit Level 1, version 1 """ import aetools import MacOS _code = 'aevt' class builtin_Suite_Events: def open(self, _object, _attributes={}, **_arguments): """open: Open the specified object(s) Required argument: list of objects to open Keyword argument _attributes: AppleEvent attribute dictionary """ _code = 'aevt' _subcode = 'odoc' if _arguments: raise TypeError, 'No optional args expected' _arguments['----'] = _object _reply, _arguments, _attributes = self.send(_code, _subcode, _arguments, _attributes) if _arguments.get('errn', 0): raise aetools.Error, aetools.decodeerror(_arguments) # XXXX Optionally decode result if _arguments.has_key('----'): return _arguments['----'] def run(self, _no_object=None, _attributes={}, **_arguments): """run: Run an application. Most applications will open an empty, untitled window. Keyword argument _attributes: AppleEvent attribute dictionary """ _code = 'aevt' _subcode = 'oapp' if _arguments: raise TypeError, 'No optional args expected' if _no_object != None: raise TypeError, 'No direct arg expected' _reply, _arguments, _attributes = self.send(_code, _subcode, _arguments, _attributes) if _arguments.get('errn', 0): raise aetools.Error, aetools.decodeerror(_arguments) # XXXX Optionally decode result if _arguments.has_key('----'): return _arguments['----'] def reopen(self, _no_object=None, _attributes={}, **_arguments): """reopen: Reactivate a running application. Some applications will open a new untitled window if no window is open. Keyword argument _attributes: AppleEvent attribute dictionary """ _code = 'aevt' _subcode = 'rapp' if _arguments: raise TypeError, 'No optional args expected' if _no_object != None: raise TypeError, 'No direct arg expected' _reply, _arguments, _attributes = self.send(_code, _subcode, _arguments, _attributes) if _arguments.get('errn', 0): raise aetools.Error, aetools.decodeerror(_arguments) # XXXX Optionally decode result if _arguments.has_key('----'): return _arguments['----'] def _print(self, _object, _attributes={}, **_arguments): """print: Print the specified object(s) Required argument: list of objects to print Keyword argument _attributes: AppleEvent attribute dictionary """ _code = 'aevt' _subcode = 'pdoc' if _arguments: raise TypeError, 'No optional args expected' _arguments['----'] = _object _reply, _arguments, _attributes = self.send(_code, _subcode, _arguments, _attributes) if _arguments.get('errn', 0): raise aetools.Error, aetools.decodeerror(_arguments) # XXXX Optionally decode result if _arguments.has_key('----'): return _arguments['----'] _argmap_quit = { 'saving' : 'savo', } def quit(self, _no_object=None, _attributes={}, **_arguments): """quit: Quit an application Keyword argument saving: specifies whether to save currently open documents Keyword argument _attributes: AppleEvent attribute dictionary """ _code = 'aevt' _subcode = 'quit' aetools.keysubst(_arguments, self._argmap_quit) if _no_object != None: raise TypeError, 'No direct arg expected' aetools.enumsubst(_arguments, 'savo', _Enum_savo) _reply, _arguments, _attributes = self.send(_code, _subcode, _arguments, _attributes) if _arguments.get('errn', 0): raise aetools.Error, aetools.decodeerror(_arguments) # XXXX Optionally decode result if _arguments.has_key('----'): return _arguments['----'] _argmap_close = { 'saving' : 'savo', 'saving_in' : 'kfil', } _Enum_savo = { 'yes' : 'yes ', # Save objects now 'no' : 'no ', # Do not save objects 'ask' : 'ask ', # Ask the user whether to save } # # Indices of types declared in this module # _classdeclarations = { } _propdeclarations = { } _compdeclarations = { } _enumdeclarations = { 'savo' : _Enum_savo, } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 21:41:38 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 21:41:38 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev configure,1.12,1.13 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev In directory centera.de:/home/tismer/slpdev/src/2.3/dev Modified Files: configure Log Message: configure generated Index: configure =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/configure,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** configure 5 Apr 2004 17:27:04 -0000 1.12 --- configure 4 May 2004 19:41:36 -0000 1.13 *************** *** 2,9 **** # From configure.in Revision: 1.427.4.10 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57 for python 2.3. # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. --- 2,8 ---- # From configure.in Revision: 1.427.4.10 . [...13317 lines suppressed...] sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 19990,19997 **** as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 21641,21648 ---- as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 24 03:40:19 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 24 May 2004 03:40:19 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module channelobject.c, 1.46, 1.47 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/module In directory centera.de:/tmp/cvs-serv1224/module Modified Files: channelobject.c Log Message: more small omissions Index: channelobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/module/channelobject.c,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** channelobject.c 24 May 2004 01:01:20 -0000 1.46 --- channelobject.c 24 May 2004 01:40:17 -0000 1.47 *************** *** 369,373 **** --- 369,375 ---- { STACKLESS_GETARG(); + PyThreadState *ts = PyThreadState_GET(); + if(ts->st.main == NULL) return PyChannel_Send_M(self, arg); return generic_channel_action(self, arg, 1, stackless); } *************** *** 411,415 **** PyThreadState *ts = PyThreadState_GET(); PyObject *bomb, *ret = NULL; - PyTaskletObject *task = ts->st.current; assert(PyChannel_Check(self)); --- 413,416 ---- *************** *** 438,442 **** PyObject *klass = PySequence_GetItem(args, 0); PyThreadState *ts = PyThreadState_GET(); - PyTaskletObject *caller = ts->st.current; if (klass == NULL) --- 439,442 ---- *************** *** 500,504 **** --- 500,506 ---- { STACKLESS_GETARG(); + PyThreadState *ts = PyThreadState_GET(); + if (ts->st.main == NULL) return PyChannel_Receive_M(self); return generic_channel_action(self, Py_None, -1, stackless); } _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:25 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:25 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Modules/launch _Launchmodule.c, NONE, 1.1 launchscan.py, NONE, 1.1 launchsupport.py, NONE, 1.1 setup.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Modules/launch In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Modules/launch Added Files: _Launchmodule.c launchscan.py launchsupport.py setup.py Log Message: added files --- NEW FILE: _Launchmodule.c --- /* ========================= Module _Launch ========================= */ #include "Python.h" #include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ "Not available in this shared library/OS version"); \ return NULL; \ }} while(0) #if PY_VERSION_HEX < 0x02040000 PyObject *PyMac_GetOSErrException(void); #endif #include /* ** Optional CFStringRef. None will pass NULL */ static int OptCFStringRefObj_Convert(PyObject *v, CFStringRef *spec) { if (v == Py_None) { *spec = NULL; return 1; } return CFStringRefObj_Convert(v, spec); } PyObject * OptCFStringRefObj_New(CFStringRef it) { if (it == NULL) { Py_INCREF(Py_None); return Py_None; } return CFStringRefObj_New(it); } /* ** Convert LSItemInfoRecord to Python. */ PyObject * LSItemInfoRecord_New(LSItemInfoRecord *it) { return Py_BuildValue("{s:is:O&s:O&s:O&s:O&s:i}", "flags", it->flags, "filetype", PyMac_BuildOSType, it->filetype, "creator", PyMac_BuildOSType, it->creator, "extension", OptCFStringRefObj_New, it->extension, "iconFileName", OptCFStringRefObj_New, it->iconFileName, "kindID", it->kindID); } static PyObject *Launch_Error; static PyObject *Launch_LSCopyItemInfoForRef(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inItemRef; LSRequestedInfo inWhichInfo; LSItemInfoRecord outItemInfo; if (!PyArg_ParseTuple(_args, "O&l", PyMac_GetFSRef, &inItemRef, &inWhichInfo)) return NULL; _err = LSCopyItemInfoForRef(&inItemRef, inWhichInfo, &outItemInfo); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", LSItemInfoRecord_New, &outItemInfo); return _res; } static PyObject *Launch_LSCopyItemInfoForURL(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inURL; LSRequestedInfo inWhichInfo; LSItemInfoRecord outItemInfo; if (!PyArg_ParseTuple(_args, "O&l", CFURLRefObj_Convert, &inURL, &inWhichInfo)) return NULL; _err = LSCopyItemInfoForURL(inURL, inWhichInfo, &outItemInfo); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", LSItemInfoRecord_New, &outItemInfo); return _res; } static PyObject *Launch_LSGetExtensionInfo(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; UniChar *inNameLen__in__; UniCharCount inNameLen__len__; int inNameLen__in_len__; UniCharCount outExtStartIndex; if (!PyArg_ParseTuple(_args, "u#", &inNameLen__in__, &inNameLen__in_len__)) return NULL; inNameLen__len__ = inNameLen__in_len__; _err = LSGetExtensionInfo(inNameLen__len__, inNameLen__in__, &outExtStartIndex); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("l", outExtStartIndex); return _res; } static PyObject *Launch_LSCopyDisplayNameForRef(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inRef; CFStringRef outDisplayName; if (!PyArg_ParseTuple(_args, "O&", PyMac_GetFSRef, &inRef)) return NULL; _err = LSCopyDisplayNameForRef(&inRef, &outDisplayName); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", CFStringRefObj_New, outDisplayName); return _res; } static PyObject *Launch_LSCopyDisplayNameForURL(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inURL; CFStringRef outDisplayName; if (!PyArg_ParseTuple(_args, "O&", CFURLRefObj_Convert, &inURL)) return NULL; _err = LSCopyDisplayNameForURL(inURL, &outDisplayName); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", CFStringRefObj_New, outDisplayName); return _res; } static PyObject *Launch_LSSetExtensionHiddenForRef(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inRef; Boolean inHide; if (!PyArg_ParseTuple(_args, "O&b", PyMac_GetFSRef, &inRef, &inHide)) return NULL; _err = LSSetExtensionHiddenForRef(&inRef, inHide); if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Launch_LSSetExtensionHiddenForURL(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inURL; Boolean inHide; if (!PyArg_ParseTuple(_args, "O&b", CFURLRefObj_Convert, &inURL, &inHide)) return NULL; _err = LSSetExtensionHiddenForURL(inURL, inHide); if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *Launch_LSCopyKindStringForRef(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inFSRef; CFStringRef outKindString; if (!PyArg_ParseTuple(_args, "O&", PyMac_GetFSRef, &inFSRef)) return NULL; _err = LSCopyKindStringForRef(&inFSRef, &outKindString); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", CFStringRefObj_New, outKindString); return _res; } static PyObject *Launch_LSCopyKindStringForURL(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inURL; CFStringRef outKindString; if (!PyArg_ParseTuple(_args, "O&", CFURLRefObj_Convert, &inURL)) return NULL; _err = LSCopyKindStringForURL(inURL, &outKindString); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", CFStringRefObj_New, outKindString); return _res; } static PyObject *Launch_LSGetApplicationForItem(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inItemRef; LSRolesMask inRoleMask; FSRef outAppRef; CFURLRef outAppURL; if (!PyArg_ParseTuple(_args, "O&l", PyMac_GetFSRef, &inItemRef, &inRoleMask)) return NULL; _err = LSGetApplicationForItem(&inItemRef, inRoleMask, &outAppRef, &outAppURL); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&O&", PyMac_BuildFSRef, &outAppRef, CFURLRefObj_New, outAppURL); return _res; } static PyObject *Launch_LSGetApplicationForInfo(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; OSType inType; OSType inCreator; CFStringRef inExtension; LSRolesMask inRoleMask; FSRef outAppRef; CFURLRef outAppURL; if (!PyArg_ParseTuple(_args, "O&O&O&l", PyMac_GetOSType, &inType, PyMac_GetOSType, &inCreator, OptCFStringRefObj_Convert, &inExtension, &inRoleMask)) return NULL; _err = LSGetApplicationForInfo(inType, inCreator, inExtension, inRoleMask, &outAppRef, &outAppURL); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&O&", PyMac_BuildFSRef, &outAppRef, CFURLRefObj_New, outAppURL); return _res; } static PyObject *Launch_LSGetApplicationForURL(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inURL; LSRolesMask inRoleMask; FSRef outAppRef; CFURLRef outAppURL; if (!PyArg_ParseTuple(_args, "O&l", CFURLRefObj_Convert, &inURL, &inRoleMask)) return NULL; _err = LSGetApplicationForURL(inURL, inRoleMask, &outAppRef, &outAppURL); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&O&", PyMac_BuildFSRef, &outAppRef, CFURLRefObj_New, outAppURL); return _res; } static PyObject *Launch_LSFindApplicationForInfo(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; OSType inCreator; CFStringRef inBundleID; CFStringRef inName; FSRef outAppRef; CFURLRef outAppURL; if (!PyArg_ParseTuple(_args, "O&O&O&", PyMac_GetOSType, &inCreator, OptCFStringRefObj_Convert, &inBundleID, OptCFStringRefObj_Convert, &inName)) return NULL; _err = LSFindApplicationForInfo(inCreator, inBundleID, inName, &outAppRef, &outAppURL); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&O&", PyMac_BuildFSRef, &outAppRef, CFURLRefObj_New, outAppURL); return _res; } static PyObject *Launch_LSCanRefAcceptItem(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inItemFSRef; FSRef inTargetRef; LSRolesMask inRoleMask; LSAcceptanceFlags inFlags; Boolean outAcceptsItem; if (!PyArg_ParseTuple(_args, "O&O&ll", PyMac_GetFSRef, &inItemFSRef, PyMac_GetFSRef, &inTargetRef, &inRoleMask, &inFlags)) return NULL; _err = LSCanRefAcceptItem(&inItemFSRef, &inTargetRef, inRoleMask, inFlags, &outAcceptsItem); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("b", outAcceptsItem); return _res; } static PyObject *Launch_LSCanURLAcceptURL(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inItemURL; CFURLRef inTargetURL; LSRolesMask inRoleMask; LSAcceptanceFlags inFlags; Boolean outAcceptsItem; if (!PyArg_ParseTuple(_args, "O&O&ll", CFURLRefObj_Convert, &inItemURL, CFURLRefObj_Convert, &inTargetURL, &inRoleMask, &inFlags)) return NULL; _err = LSCanURLAcceptURL(inItemURL, inTargetURL, inRoleMask, inFlags, &outAcceptsItem); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("b", outAcceptsItem); return _res; } static PyObject *Launch_LSOpenFSRef(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; FSRef inRef; FSRef outLaunchedRef; if (!PyArg_ParseTuple(_args, "O&", PyMac_GetFSRef, &inRef)) return NULL; _err = LSOpenFSRef(&inRef, &outLaunchedRef); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", PyMac_BuildFSRef, &outLaunchedRef); return _res; } static PyObject *Launch_LSOpenCFURLRef(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSStatus _err; CFURLRef inURL; CFURLRef outLaunchedURL; if (!PyArg_ParseTuple(_args, "O&", CFURLRefObj_Convert, &inURL)) return NULL; _err = LSOpenCFURLRef(inURL, &outLaunchedURL); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", CFURLRefObj_New, outLaunchedURL); return _res; } static PyMethodDef Launch_methods[] = { {"LSCopyItemInfoForRef", (PyCFunction)Launch_LSCopyItemInfoForRef, 1, PyDoc_STR("(FSRef inItemRef, LSRequestedInfo inWhichInfo) -> (LSItemInfoRecord outItemInfo)")}, {"LSCopyItemInfoForURL", (PyCFunction)Launch_LSCopyItemInfoForURL, 1, PyDoc_STR("(CFURLRef inURL, LSRequestedInfo inWhichInfo) -> (LSItemInfoRecord outItemInfo)")}, {"LSGetExtensionInfo", (PyCFunction)Launch_LSGetExtensionInfo, 1, PyDoc_STR("(Buffer inNameLen) -> (UniCharCount outExtStartIndex)")}, {"LSCopyDisplayNameForRef", (PyCFunction)Launch_LSCopyDisplayNameForRef, 1, PyDoc_STR("(FSRef inRef) -> (CFStringRef outDisplayName)")}, {"LSCopyDisplayNameForURL", (PyCFunction)Launch_LSCopyDisplayNameForURL, 1, PyDoc_STR("(CFURLRef inURL) -> (CFStringRef outDisplayName)")}, {"LSSetExtensionHiddenForRef", (PyCFunction)Launch_LSSetExtensionHiddenForRef, 1, PyDoc_STR("(FSRef inRef, Boolean inHide) -> None")}, {"LSSetExtensionHiddenForURL", (PyCFunction)Launch_LSSetExtensionHiddenForURL, 1, PyDoc_STR("(CFURLRef inURL, Boolean inHide) -> None")}, {"LSCopyKindStringForRef", (PyCFunction)Launch_LSCopyKindStringForRef, 1, PyDoc_STR("(FSRef inFSRef) -> (CFStringRef outKindString)")}, {"LSCopyKindStringForURL", (PyCFunction)Launch_LSCopyKindStringForURL, 1, PyDoc_STR("(CFURLRef inURL) -> (CFStringRef outKindString)")}, {"LSGetApplicationForItem", (PyCFunction)Launch_LSGetApplicationForItem, 1, PyDoc_STR("(FSRef inItemRef, LSRolesMask inRoleMask) -> (FSRef outAppRef, CFURLRef outAppURL)")}, {"LSGetApplicationForInfo", (PyCFunction)Launch_LSGetApplicationForInfo, 1, PyDoc_STR("(OSType inType, OSType inCreator, CFStringRef inExtension, LSRolesMask inRoleMask) -> (FSRef outAppRef, CFURLRef outAppURL)")}, {"LSGetApplicationForURL", (PyCFunction)Launch_LSGetApplicationForURL, 1, PyDoc_STR("(CFURLRef inURL, LSRolesMask inRoleMask) -> (FSRef outAppRef, CFURLRef outAppURL)")}, {"LSFindApplicationForInfo", (PyCFunction)Launch_LSFindApplicationForInfo, 1, PyDoc_STR("(OSType inCreator, CFStringRef inBundleID, CFStringRef inName) -> (FSRef outAppRef, CFURLRef outAppURL)")}, {"LSCanRefAcceptItem", (PyCFunction)Launch_LSCanRefAcceptItem, 1, PyDoc_STR("(FSRef inItemFSRef, FSRef inTargetRef, LSRolesMask inRoleMask, LSAcceptanceFlags inFlags) -> (Boolean outAcceptsItem)")}, {"LSCanURLAcceptURL", (PyCFunction)Launch_LSCanURLAcceptURL, 1, PyDoc_STR("(CFURLRef inItemURL, CFURLRef inTargetURL, LSRolesMask inRoleMask, LSAcceptanceFlags inFlags) -> (Boolean outAcceptsItem)")}, {"LSOpenFSRef", (PyCFunction)Launch_LSOpenFSRef, 1, PyDoc_STR("(FSRef inRef) -> (FSRef outLaunchedRef)")}, {"LSOpenCFURLRef", (PyCFunction)Launch_LSOpenCFURLRef, 1, PyDoc_STR("(CFURLRef inURL) -> (CFURLRef outLaunchedURL)")}, {NULL, NULL, 0} }; void init_Launch(void) { PyObject *m; PyObject *d; m = Py_InitModule("_Launch", Launch_methods); d = PyModule_GetDict(m); Launch_Error = PyMac_GetOSErrException(); if (Launch_Error == NULL || PyDict_SetItemString(d, "Error", Launch_Error) != 0) return; } /* ======================= End module _Launch ======================= */ --- NEW FILE: launchscan.py --- # Scan an Apple header file, generating a Python file of generator calls. import sys import os from bgenlocations import TOOLBOXDIR, BGENDIR sys.path.append(BGENDIR) from scantools import Scanner LONG = "LaunchServices" SHORT = "launch" OBJECT = "NOTUSED" def main(): input = LONG + ".h" output = SHORT + "gen.py" defsoutput = TOOLBOXDIR + LONG + ".py" scanner = MyScanner(input, output, defsoutput) scanner.scan() scanner.close() scanner.gentypetest(SHORT+"typetest.py") print "=== Testing definitions output code ===" execfile(defsoutput, {}, {}) print "=== Done scanning and generating, now importing the generated code... ===" exec "import " + SHORT + "support" print "=== Done. It's up to you to compile it now! ===" class MyScanner(Scanner): def destination(self, type, name, arglist): classname = "Function" listname = "functions" if arglist: t, n, m = arglist[0] # This is non-functional today if t == OBJECT and m == "InMode": classname = "Method" listname = "methods" return classname, listname def writeinitialdefs(self): self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n") self.defsfile.write("from Carbon.Files import *\n") self.defsfile.write("kLSRequestAllInfo = -1\n") self.defsfile.write("kLSRolesAll = -1\n") self.defsfile.write("kLSUnknownType = FOUR_CHAR_CODE('\\0\\0\\0\\0')\n") self.defsfile.write("kLSUnknownCreator = FOUR_CHAR_CODE('\\0\\0\\0\\0')\n") self.defsfile.write("kLSInvalidExtensionIndex = -1\n") def makeblacklistnames(self): return [ "LSInit", "LSTerm", "kLSRequestAllInfo", "kLSRolesAll", "kLSInvalidExtensionIndex", "kLSUnknownType", "kLSUnknownCreator" ] def makeblacklisttypes(self): return [ "LSLaunchFSRefSpec_ptr", "LSLaunchURLSpec_ptr", ] def makerepairinstructions(self): return [ # LSGetApplicationForInfo ([('CFStringRef', 'inExtension', 'InMode')], [('OptCFStringRef', 'inExtension', 'InMode')]), # LSFindApplicationForInfo ([('CFStringRef', 'inBundleID', 'InMode')], [('OptCFStringRef', 'inBundleID', 'InMode')]), ([('CFStringRef', 'inName', 'InMode')], [('OptCFStringRef', 'inName', 'InMode')]), # Unicode filenames passed as length, buffer. LSGetExtensionInfo ([('UniCharCount', '*', 'InMode'), ('UniChar_ptr', '*', 'InMode')], [('UnicodeReverseInBuffer', '*', 'InMode')] ), ] if __name__ == "__main__": main() --- NEW FILE: launchsupport.py --- # This script generates a Python interface for an Apple Macintosh Manager. # It uses the "bgen" package to generate C code. # The function specifications are generated by scanning the mamager's header file, # using the "scantools" package (customized for this particular manager). import string # Declarations that change for each manager MODNAME = '_Launch' # The name of the module OBJECTNAME = 'UNUSED' # The basic name of the objects used here KIND = 'Record' # Usually 'Ptr' or 'Handle' # The following is *usually* unchanged but may still require tuning MODPREFIX = 'Launch' # The prefix for module-wide routines OBJECTTYPE = OBJECTNAME + KIND # The C type used to represent them OBJECTPREFIX = MODPREFIX + 'Obj' # The prefix for object methods INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner OUTPUTFILE = MODNAME + "module.c" # The file generated by this program from macsupport import * # Create the type objects LSAcceptanceFlags = Type("LSAcceptanceFlags", "l") LSInitializeFlags = Type("LSInitializeFlags", "l") LSRequestedInfo = Type("LSRequestedInfo", "l") LSRolesMask = Type("LSRolesMask", "l") UniCharCount = Type("UniCharCount", "l") OptCFStringRef = OpaqueByValueType("CFStringRef", "OptCFStringRefObj") LSItemInfoRecord = OpaqueType("LSItemInfoRecord", "LSItemInfoRecord") includestuff = includestuff + """ #if PY_VERSION_HEX < 0x02040000 PyObject *PyMac_GetOSErrException(void); #endif #include /* ** Optional CFStringRef. None will pass NULL */ static int OptCFStringRefObj_Convert(PyObject *v, CFStringRef *spec) { if (v == Py_None) { *spec = NULL; return 1; } return CFStringRefObj_Convert(v, spec); } PyObject * OptCFStringRefObj_New(CFStringRef it) { if (it == NULL) { Py_INCREF(Py_None); return Py_None; } return CFStringRefObj_New(it); } /* ** Convert LSItemInfoRecord to Python. */ PyObject * LSItemInfoRecord_New(LSItemInfoRecord *it) { return Py_BuildValue("{s:is:O&s:O&s:O&s:O&s:i}", "flags", it->flags, "filetype", PyMac_BuildOSType, it->filetype, "creator", PyMac_BuildOSType, it->creator, "extension", OptCFStringRefObj_New, it->extension, "iconFileName", OptCFStringRefObj_New, it->iconFileName, "kindID", it->kindID); } """ # From here on it's basically all boiler plate... execfile(string.lower(MODPREFIX) + 'typetest.py') # Create the generator groups and link them module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff) ##object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE) ##module.addobject(object) # Create the generator classes used to populate the lists Function = OSErrFunctionGenerator ##Method = OSErrMethodGenerator # Create and populate the lists functions = [] ##methods = [] execfile(INPUTFILE) # add the populated lists to the generator groups # (in a different wordl the scan program would generate this) for f in functions: module.add(f) ##for f in methods: object.add(f) # generate output (open the output file as late as possible) SetOutputFileName(OUTPUTFILE) module.generate() --- NEW FILE: setup.py --- # This is a temporary setup script to allow distribution of # MacPython 2.4 modules for MacPython 2.3. from distutils.core import Extension, setup setup(name="LaunchServices", version="0.2", ext_modules=[ Extension('_Launch', ['_Launchmodule.c'], extra_link_args=['-framework', 'ApplicationServices']) ], py_modules=['LaunchServices.Launch', 'LaunchServices.LaunchServices'], package_dir={'LaunchServices':'../../../Lib/plat-mac/Carbon'} ) _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:14 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:14 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/PC config.c,1.6,1.7 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/PC In directory centera.de:/tmp/cvs-serv18709/src/PC Modified Files: config.c Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: config.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/PC/config.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** config.c 30 Apr 2004 22:11:27 -0000 1.6 --- config.c 1 May 2004 01:21:10 -0000 1.7 *************** *** 47,50 **** --- 47,59 ---- extern void init_hotshot(void); extern void initxxsubtype(void); + <<<<<<< ../../2.2/src/./PC/config.c + ======= + extern void initzipimport(void); + extern void init_random(void); + extern void inititertools(void); + #ifdef STACKLESS + extern void initstackless(void); + #endif + >>>>>>> ././PC/config.c /* XXX tim: what's the purpose of ADDMODULE MARKER? */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 17:40:22 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 17:40:22 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src Makefile.pre.in, 1.19, 1.20 Message-ID: Update of /home/cvs/slpdev/src/2.2/src In directory centera.de:/tmp/cvs-serv30936/src/2.2/src Modified Files: Makefile.pre.in Log Message: unifying makefiles Index: Makefile.pre.in =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Makefile.pre.in,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Makefile.pre.in 3 May 2004 16:54:28 -0000 1.19 --- Makefile.pre.in 4 May 2004 15:40:20 -0000 1.20 *************** *** 55,61 **** # Compiler options OPT= @OPT@ ! DEFS= @DEFS@ ! CFLAGS= $(OPT) ! CPPFLAGS= -I. -I$(srcdir)/Include -I$(srcdir)/Stackless $(DEFS) LDFLAGS= @LDFLAGS@ LDLAST= @LDLAST@ --- 55,61 ---- # Compiler options OPT= @OPT@ ! BASECFLAGS= @BASECFLAGS@ ! CFLAGS= $(BASECFLAGS) $(OPT) ! CPPFLAGS= -I. -I$(srcdir)/Include -I$(srcdir)/Stackless LDFLAGS= @LDFLAGS@ LDLAST= @LDLAST@ *************** *** 66,71 **** CFLAGSFORSHARED=@CFLAGSFORSHARED@ # C flags used for building the interpreter object files ! PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) ! # Special C flags for slp_transfer.c SLPFLAGS= @SLPFLAGS@ --- 66,70 ---- CFLAGSFORSHARED=@CFLAGSFORSHARED@ # C flags used for building the interpreter object files ! PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE # Special C flags for slp_transfer.c SLPFLAGS= @SLPFLAGS@ *************** *** 110,113 **** --- 109,117 ---- PYTHONFRAMEWORKPREFIX= @PYTHONFRAMEWORKPREFIX@ PYTHONFRAMEWORKINSTALLDIR= @PYTHONFRAMEWORKINSTALLDIR@ + # Options to enable prebinding (for fast startup) + OTHER_LIBTOOL_OPT = -prebind -seg1addr 0x10000000 + + # Environment to run shared python without installed libraries + RUNSHARED= @RUNSHARED@ # Modes for directories, executables and data files created by the *************** *** 139,142 **** --- 143,147 ---- DLLLIBRARY= @DLLLIBRARY@ LDLIBRARYDIR= @LDLIBRARYDIR@ + INSTSONAME= @INSTSONAME@ *************** *** 145,151 **** LIBC= @LIBC@ SYSLIBS= $(LIBM) $(LIBC) MAINOBJ= @MAINOBJ@ ! LIBOBJS= @LIBOBJS@ DLINCLDIR= @DLINCLDIR@ DYNLOADFILE= @DYNLOADFILE@ --- 150,157 ---- LIBC= @LIBC@ SYSLIBS= $(LIBM) $(LIBC) + SHLIBS= @SHLIBS@ MAINOBJ= @MAINOBJ@ ! THREADOBJ= @THREADOBJ@ DLINCLDIR= @DLINCLDIR@ DYNLOADFILE= @DYNLOADFILE@ *************** *** 222,225 **** --- 228,232 ---- Stackless/module/taskletobject.o \ Stackless/pickling/prickelpit.o \ + Stackless/pickling/safe_pickle.o \ Python/compile.o \ Python/codecs.o \ *************** *** 251,255 **** Python/$(DYNLOADFILE) \ $(MACHDEP_OBJS) \ ! $(LIBOBJS) --- 258,262 ---- Python/$(DYNLOADFILE) \ $(MACHDEP_OBJS) \ ! $(THREADOBJ) *************** *** 276,279 **** --- 283,287 ---- Objects/moduleobject.o \ Objects/object.o \ + Objects/obmalloc.o \ Objects/rangeobject.o \ Objects/sliceobject.o \ *************** *** 304,308 **** # Build the interpreter ! $(BUILDPYTHON): Modules/$(MAINOBJ) $(LDLIBRARY) $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \ Modules/$(MAINOBJ) \ --- 312,316 ---- # Build the interpreter ! $(BUILDPYTHON): Modules/$(MAINOBJ) $(LIBRARY) $(LDLIBRARY) $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \ Modules/$(MAINOBJ) \ *************** *** 310,314 **** platform: $(BUILDPYTHON) ! ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform --- 318,322 ---- platform: $(BUILDPYTHON) ! $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform *************** *** 316,321 **** sharedmods: $(BUILDPYTHON) case $$MAKEFLAGS in \ ! *-s*) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ ! *) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ esac --- 324,329 ---- sharedmods: $(BUILDPYTHON) case $$MAKEFLAGS in \ ! *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ ! *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ esac *************** *** 345,369 **** $(RANLIB) $@ ! # This rule is only here for DG/UX and BeOS!!! ! libpython$(VERSION).so: $(LIBRARY) ! case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \ ! *dgux*) \ ! test -d dgux || mkdir dgux; \ ! (cd dgux;ar x ../$^;ld -G -o ../$@ * ); \ ! /bin/rm -rf ./dgux \ ! ;; \ ! beos) \ ! $(AR) so $(LIBRARY) $@ \ ! ;; \ ! esac ! # This rule is here for OPENSTEP/Rhapsody/MacOSX ! $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): $(LIBRARY) $(PYTHONFRAMEWORKDIR) libtool -o $(LDLIBRARY) -dynamic $(OTHER_LIBTOOL_OPT) $(LIBRARY) \ -framework System @LIBTOOL_CRUFT@ # This rule builds the Cygwin Python DLL libpython$(VERSION).dll.a: $(LIBRARY_OBJS) - dlltool --export-all --output-def $@ $^ $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ $(LIBS) $(MODLIBS) $(SYSLIBS) --- 353,394 ---- $(RANLIB) $@ ! libpython$(VERSION).so: $(LIBRARY_OBJS) ! if test $(INSTSONAME) != $(LDLIBRARY); then \ ! $(LDSHARED) -Wl,-soname=$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ ! $(LN) -f $(INSTSONAME) $@; \ ! else\ ! $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ ! fi ! libpython$(VERSION).sl: $(LIBRARY_OBJS) ! $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(LIBC) $(LIBM) ! ! # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary ! # minimal framework (not including the Lib directory and such) in the current ! # directory. ! RESSRCDIR=$(srcdir)/Mac/OSXResources/framework ! $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \ ! $(LIBRARY) \ ! $(RESSRCDIR)/Info.plist \ ! $(RESSRCDIR)/version.plist \ ! $(RESSRCDIR)/English.lproj/InfoPlist.strings ! $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION) libtool -o $(LDLIBRARY) -dynamic $(OTHER_LIBTOOL_OPT) $(LIBRARY) \ -framework System @LIBTOOL_CRUFT@ + $(INSTALL) -d -m $(DIRMODE) \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj + $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist + $(INSTALL_DATA) $(RESSRCDIR)/version.plist \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/version.plist + $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj/InfoPlist.strings + $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current + $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK) + $(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers + $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources # This rule builds the Cygwin Python DLL libpython$(VERSION).dll.a: $(LIBRARY_OBJS) $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ $(LIBS) $(MODLIBS) $(SYSLIBS) *************** *** 420,424 **** $(PGEN): $(PGENOBJS) ! $(CC) $(OPT) $(PGENOBJS) $(LIBS) -o $(PGEN) Parser/grammar.o: $(srcdir)/Parser/grammar.c \ --- 445,449 ---- $(PGEN): $(PGENOBJS) ! $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) Parser/grammar.o: $(srcdir)/Parser/grammar.c \ *************** *** 431,440 **** Python/getplatform.o: $(srcdir)/Python/getplatform.c ! $(CC) -c $(CFLAGS) $(CPPFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c Python/importdl.o: $(srcdir)/Python/importdl.c ! $(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c ! ! Objects/object.o: $(srcdir)/Objects/object.c $(srcdir)/Objects/obmalloc.c Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ --- 456,463 ---- Python/getplatform.o: $(srcdir)/Python/getplatform.c ! $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c Python/importdl.o: $(srcdir)/Python/importdl.c ! $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ *************** *** 518,524 **** # Test the interpreter (twice, once without .pyc files, once with) TESTOPTS= -l TESTPROG= $(srcdir)/Lib/test/regrtest.py ! TESTPYTHON= ./$(BUILDPYTHON) -E -tt test: all platform -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f --- 541,554 ---- # Test the interpreter (twice, once without .pyc files, once with) + # In the past, we've had problems where bugs in the marshalling or + # elsewhere caused bytecode read from .pyc files to behave differently + # than bytecode generated directly from a .py source file. Sometimes + # the bytecode read from a .pyc file had the bug, somtimes the directly + # generated bytecode. This is sometimes a very shy bug needing a lot of + # sample data. + TESTOPTS= -l TESTPROG= $(srcdir)/Lib/test/regrtest.py ! TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) -E -tt test: all platform -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f *************** *** 526,532 **** $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) QUICKTESTOPTS= $(TESTOPTS) -x test_thread test_signal test_strftime \ test_unicodedata test_re test_sre test_select test_poll \ ! test_linuxaudiodev test_sunaudiodev quicktest: all platform -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f --- 556,567 ---- $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) + testall: all platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall + $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall + QUICKTESTOPTS= $(TESTOPTS) -x test_thread test_signal test_strftime \ test_unicodedata test_re test_sre test_select test_poll \ ! test_linuxaudiodev test_struct test_sunaudiodev test_zlib quicktest: all platform -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f *************** *** 555,559 **** if test $$i != X; then \ echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ ! $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ fi; \ done --- 590,594 ---- if test $$i != X; then \ echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ ! $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ fi; \ done *************** *** 562,568 **** @for i in $(DESTDIRS); \ do \ ! if test ! -d $$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ --- 597,603 ---- @for i in $(DESTDIRS); \ do \ ! if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ *************** *** 572,599 **** # Install the interpreter (by creating a hard link to python$(VERSION)) bininstall: altbininstall ! -if test -f $(BINDIR)/$(PYTHON); \ ! then rm -f $(BINDIR)/$(PYTHON); \ else true; \ fi ! (cd $(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON)) # Install the interpreter with $(VERSION) affixed # This goes into $(exec_prefix) altbininstall: $(BUILDPYTHON) @for i in $(BINDIR) $(LIBDIR); \ do \ ! if test ! -d $$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ done ! $(INSTALL_PROGRAM) $(BUILDPYTHON) $(BINDIR)/python$(VERSION)$(EXE) ! if test -f libpython$(VERSION).so; then \ ! $(INSTALL_DATA) libpython$(VERSION).so $(LIBDIR); \ ! else true; \ ! fi ! if test -f "$(DLLLIBRARY)"; then \ ! $(INSTALL_SHARED) $(DLLLIBRARY) $(BINDIR); \ else true; \ fi --- 607,643 ---- # Install the interpreter (by creating a hard link to python$(VERSION)) bininstall: altbininstall ! -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \ ! then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ else true; \ fi ! (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON)) # Install the interpreter with $(VERSION) affixed # This goes into $(exec_prefix) altbininstall: $(BUILDPYTHON) + @if test "$(PYTHONFRAMEWORKDIR)" != no-framework; then \ + if test ! -f $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current/Resources/Info.plist; then \ + echo 'Framework build: use "make frameworkinstall" in stead of "make install"'; \ + exit 1; \ + fi; \ + fi @for i in $(BINDIR) $(LIBDIR); \ do \ ! if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ done ! $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) ! if test -f libpython$(VERSION)$(SO); then \ ! if test "$(SO)" = .dll; then \ ! $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(BINDIR); \ ! else \ ! $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ ! if test libpython$(VERSION)$(SO) != $(INSTSONAME); then \ ! (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) libpython$(VERSION)$(SO)); \ ! fi \ ! fi; \ else true; \ fi *************** *** 603,628 **** @for i in $(MANDIR) $(MANDIR)/man1; \ do \ ! if test ! -d $$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ done $(INSTALL_DATA) $(srcdir)/Misc/python.man \ ! $(MANDIR)/man1/python.1 # Install the library PLATDIR= plat-$(MACHDEP) ! MACHDEPS= $(PLATDIR) XMLLIBSUBDIRS= xml xml/dom xml/parsers xml/sax LIBSUBDIRS= lib-old lib-tk site-packages test test/output test/data \ encodings email email/test email/test/data compiler hotshot \ distutils distutils/command $(XMLLIBSUBDIRS) curses $(MACHDEPS) libinstall: $(BUILDPYTHON) $(srcdir)/Lib/$(PLATDIR) @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ ! if test ! -d $$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ --- 647,685 ---- @for i in $(MANDIR) $(MANDIR)/man1; \ do \ ! if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ done $(INSTALL_DATA) $(srcdir)/Misc/python.man \ ! $(DESTDIR)$(MANDIR)/man1/python.1 # Install the library PLATDIR= plat-$(MACHDEP) ! EXTRAPLATDIR= @EXTRAPLATDIR@ ! EXTRAMACHDEPPATH=@EXTRAMACHDEPPATH@ ! MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR) XMLLIBSUBDIRS= xml xml/dom xml/parsers xml/sax + PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \ + plat-mac/lib-scriptpackages/_builtinSuites \ + plat-mac/lib-scriptpackages/CodeWarrior \ + plat-mac/lib-scriptpackages/Explorer \ + plat-mac/lib-scriptpackages/Finder \ + plat-mac/lib-scriptpackages/Netscape \ + plat-mac/lib-scriptpackages/StdSuites \ + plat-mac/lib-scriptpackages/SystemEvents \ + plat-mac/lib-scriptpackages/Terminal + PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages LIBSUBDIRS= lib-old lib-tk site-packages test test/output test/data \ encodings email email/test email/test/data compiler hotshot \ + logging bsddb bsddb/test csv idlelib idlelib/Icons \ distutils distutils/command $(XMLLIBSUBDIRS) curses $(MACHDEPS) libinstall: $(BUILDPYTHON) $(srcdir)/Lib/$(PLATDIR) @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ ! if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ *************** *** 633,639 **** if test ! -d $$a; then continue; else true; fi; \ b=$(LIBDEST)/$$d; \ ! if test ! -d $$b; then \ echo "Creating directory $$b"; \ ! $(INSTALL) -d -m $(DIRMODE) $$b; \ else true; \ fi; \ --- 690,696 ---- if test ! -d $$a; then continue; else true; fi; \ b=$(LIBDEST)/$$d; \ ! if test ! -d $(DESTDIR)$$b; then \ echo "Creating directory $$b"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \ else true; \ fi; \ *************** *** 642,649 **** do \ if test -x $$i; then \ ! $(INSTALL_SCRIPT) $$i $(LIBDEST); \ echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \ else \ ! $(INSTALL_DATA) $$i $(LIBDEST); \ echo $(INSTALL_DATA) $$i $(LIBDEST); \ fi; \ --- 699,706 ---- do \ if test -x $$i; then \ ! $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \ else \ ! $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \ echo $(INSTALL_DATA) $$i $(LIBDEST); \ fi; \ *************** *** 665,682 **** if test -x $$i; then \ echo $(INSTALL_SCRIPT) $$i $$b; \ ! $(INSTALL_SCRIPT) $$i $$b; \ else \ echo $(INSTALL_DATA) $$i $$b; \ ! $(INSTALL_DATA) $$i $$b; \ fi;; \ esac; \ done; \ done ! $(INSTALL_DATA) $(srcdir)/LICENSE $(LIBDEST)/LICENSE.txt ! PYTHONPATH=$(LIBDEST) \ ! ./$(BUILDPYTHON) -tt $(LIBDEST)/compileall.py -x badsyntax \ ! $(LIBDEST) ! PYTHONPATH=$(LIBDEST) \ ! ./$(BUILDPYTHON) -O $(LIBDEST)/compileall.py -x badsyntax $(LIBDEST) # Create the PLATDIR source directory, if one wasn't distributed.. --- 722,750 ---- if test -x $$i; then \ echo $(INSTALL_SCRIPT) $$i $$b; \ ! $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \ else \ echo $(INSTALL_DATA) $$i $$b; \ ! $(INSTALL_DATA) $$i $(DESTDIR)$$b; \ fi;; \ esac; \ done; \ done ! $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt ! PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ! ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ ! -d $(LIBDEST) -f \ ! -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST) ! PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ! ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ ! -d $(LIBDEST) -f \ ! -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST) ! PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ! ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ ! -d $(LIBDEST)/site-packages -f \ ! -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages ! PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ! ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ ! -d $(LIBDEST)/site-packages -f \ ! -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages # Create the PLATDIR source directory, if one wasn't distributed.. *************** *** 695,701 **** @for i in $(INCLDIRSTOMAKE); \ do \ ! if test ! -d $$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ --- 763,769 ---- @for i in $(INCLDIRSTOMAKE); \ do \ ! if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ *************** *** 704,710 **** do \ echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ ! $(INSTALL_DATA) $$i $(INCLUDEPY); \ done ! $(INSTALL_DATA) pyconfig.h $(CONFINCLUDEPY)/pyconfig.h # Install the library and miscellaneous stuff needed for extending/embedding --- 772,778 ---- do \ echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ ! $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \ done ! $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h # Install the library and miscellaneous stuff needed for extending/embedding *************** *** 714,751 **** @for i in $(LIBDIR) $(LIBP) $(LIBPL); \ do \ ! if test ! -d $$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ done ! @if test -d $(LDLIBRARY); then :; else \ if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ ! $(INSTALL_DATA) $(LDLIBRARY) $(LIBPL)/$(LDLIBRARY) ; \ ! $(RANLIB) $(LIBPL)/$(LDLIBRARY) ; \ else \ ! echo Skip install of $(LDLIBRARY) - use make frameworkinstall; \ fi; \ fi ! $(INSTALL_DATA) Modules/config.c $(LIBPL)/config.c ! $(INSTALL_DATA) Modules/$(MAINOBJ) $(LIBPL)/$(MAINOBJ) ! $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(LIBPL)/config.c.in ! $(INSTALL_DATA) Makefile $(LIBPL)/Makefile ! $(INSTALL_DATA) Modules/Setup $(LIBPL)/Setup ! $(INSTALL_DATA) Modules/Setup.local $(LIBPL)/Setup.local ! $(INSTALL_DATA) Modules/Setup.config $(LIBPL)/Setup.config ! $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(LIBPL)/makesetup ! $(INSTALL_SCRIPT) $(srcdir)/install-sh $(LIBPL)/install-sh @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ echo; echo "Installing support files for building shared extension modules on AIX:"; \ $(INSTALL_DATA) Modules/python.exp \ ! $(LIBPL)/python.exp; \ echo; echo "$(LIBPL)/python.exp"; \ $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \ ! $(LIBPL)/makexp_aix; \ echo "$(LIBPL)/makexp_aix"; \ $(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix \ ! $(LIBPL)/ld_so_aix; \ echo "$(LIBPL)/ld_so_aix"; \ echo; echo "See Misc/AIX-NOTES for details."; \ --- 782,823 ---- @for i in $(LIBDIR) $(LIBP) $(LIBPL); \ do \ ! if test ! -d $(DESTDIR)$$i; then \ echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ done ! @if test -d $(LIBRARY); then :; else \ if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ ! if test "$(SO)" = .dll; then \ ! $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ ! else \ ! $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ ! $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ ! fi; \ else \ ! echo Skip install of $(LIBRARY) - use make frameworkinstall; \ fi; \ fi ! $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c ! $(INSTALL_DATA) Modules/$(MAINOBJ) $(DESTDIR)$(LIBPL)/$(MAINOBJ) ! $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in ! $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile ! $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup ! $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local ! $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config ! $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup ! $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ echo; echo "Installing support files for building shared extension modules on AIX:"; \ $(INSTALL_DATA) Modules/python.exp \ ! $(DESTDIR)$(LIBPL)/python.exp; \ echo; echo "$(LIBPL)/python.exp"; \ $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \ ! $(DESTDIR)$(LIBPL)/makexp_aix; \ echo "$(LIBPL)/makexp_aix"; \ $(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix \ ! $(DESTDIR)$(LIBPL)/ld_so_aix; \ echo "$(LIBPL)/ld_so_aix"; \ echo; echo "See Misc/AIX-NOTES for details."; \ *************** *** 754,762 **** @case "$(MACHDEP)" in beos*) \ echo; echo "Installing support files for building shared extension modules on BeOS:"; \ ! $(INSTALL_DATA) Misc/BeOS-NOTES $(LIBPL)/README; \ echo; echo "$(LIBPL)/README"; \ ! $(INSTALL_SCRIPT) Modules/ar_beos $(LIBPL)/ar_beos; \ echo "$(LIBPL)/ar_beos"; \ ! $(INSTALL_SCRIPT) Modules/ld_so_beos $(LIBPL)/ld_so_beos; \ echo "$(LIBPL)/ld_so_beos"; \ echo; echo "See Misc/BeOS-NOTES for details."; \ --- 826,834 ---- @case "$(MACHDEP)" in beos*) \ echo; echo "Installing support files for building shared extension modules on BeOS:"; \ ! $(INSTALL_DATA) Misc/BeOS-NOTES $(DESTDIR)$(LIBPL)/README; \ echo; echo "$(LIBPL)/README"; \ ! $(INSTALL_SCRIPT) Modules/ar_beos $(DESTDIR)$(LIBPL)/ar_beos; \ echo "$(LIBPL)/ar_beos"; \ ! $(INSTALL_SCRIPT) Modules/ld_so_beos $(DESTDIR)$(LIBPL)/ld_so_beos; \ echo "$(LIBPL)/ld_so_beos"; \ echo; echo "See Misc/BeOS-NOTES for details."; \ *************** *** 767,799 **** # This goes into $(exec_prefix) sharedinstall: ! ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ --install-scripts=$(BINDIR) \ ! --install-platlib=$(DESTSHARED) ! ! # Install a MacOSX framework During build (before ! # setup.py), make a minimal Python.framework directory structure in the build ! # directory. This framework is minimal, it doesn't contain the Lib directory ! # and such, but together with some magic in Modules/getpath.c it is good enough ! # to run python from the install dir. ! FRAMEWORKDEST=$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION) ! RESSRCDIR=$(srcdir)/Mac/OSXResources/framework ! $(PYTHONFRAMEWORKDIR): $(RESSRCDIR)/Info.plist \ ! $(RESSRCDIR)/version.plist \ ! $(RESSRCDIR)/English.lproj/InfoPlist.strings ! @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ ! echo Not configured with --enable-framework; \ ! exit 1; \ ! else true; \ ! fi ! $(INSTALL) -d -m $(DIRMODE) $(FRAMEWORKDEST)/Resources/English.lproj ! $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(FRAMEWORKDEST)/Resources/Info.plist ! $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(FRAMEWORKDEST)/Resources/version.plist ! $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ ! $(FRAMEWORKDEST)/Resources/English.lproj/InfoPlist.strings ! $(LN) -fs $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current ! $(LN) -fs Versions/Current/Python $(PYTHONFRAMEWORKDIR)/Python ! $(LN) -fs Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers ! $(LN) -fs Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources # On install, we re-make the framework --- 839,855 ---- # This goes into $(exec_prefix) sharedinstall: ! $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ ! --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ ! --install-platlib=$(DESTSHARED) \ ! --root=/$(DESTDIR) ! # Here are a couple of targets for MacOSX again, to install a full ! # framework-based Python. frameworkinstall installs everything, the ! # subtargets install specific parts. Much of the actual work is offloaded to ! # the Makefile in Mac/OSX ! # ! frameworkinstall: frameworkinstallframework \ ! frameworkinstallapps frameworkinstallunixtools # On install, we re-make the framework *************** *** 803,809 **** # only have to cater for the structural bits of the framework. ! frameworkinstall: install frameworkinfrastructureinstall ! FRAMEWORKFINALDEST=$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION) ! frameworkinfrastructureinstall: $(LDLIBRARY) @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ echo Not configured with --enable-framework; \ --- 859,865 ---- # only have to cater for the structural bits of the framework. ! frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib ! ! frameworkinstallstructure: $(LDLIBRARY) @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ echo Not configured with --enable-framework; \ *************** *** 811,831 **** else true; \ fi ! @for i in $(FRAMEWORKFINALDEST)/Resources/English.lproj $(FRAMEWORKFINALDEST)/lib; do\ ! if test ! -d $$i; then \ ! echo "Creating directory $$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $$i; \ else true; \ fi; \ done ! $(LN) -sf $(INCLUDEPY) $(FRAMEWORKFINALDEST)/Headers ! $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(FRAMEWORKFINALDEST)/Resources/Info.plist ! $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(FRAMEWORKFINALDEST)/Resources/version.plist $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ ! $(FRAMEWORKFINALDEST)/Resources/English.lproj/InfoPlist.strings ! $(LN) -fs $(VERSION) $(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current ! $(LN) -fs Versions/Current/Python $(PYTHONFRAMEWORKINSTALLDIR)/Python ! $(LN) -fs Versions/Current/Headers $(PYTHONFRAMEWORKINSTALLDIR)/Headers ! $(LN) -fs Versions/Current/Resources $(PYTHONFRAMEWORKINSTALLDIR)/Resources ! $(INSTALL_DATA) $(LDLIBRARY) $(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY) # Build the toplevel Makefile --- 867,921 ---- else true; \ fi ! @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\ ! if test ! -d $(DESTDIR)$$i; then \ ! echo "Creating directory $(DESTDIR)$$i"; \ ! $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ else true; \ fi; \ done ! $(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers ! $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(DESTDIR)$(prefix)/Resources/Info.plist ! $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(DESTDIR)$(prefix)/Resources/version.plist $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ ! $(DESTDIR)$(prefix)/Resources/English.lproj/InfoPlist.strings ! $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current ! $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK) ! $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers ! $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources ! $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY) ! ! # This installs Mac/Lib into the framework ! frameworkinstallmaclib: ! $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installmacsubtree \ ! $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ ! srcdir=$(srcdir) builddir=. prefix=$(prefix) LIBDEST=$(LIBDEST) \ ! DESTDIR=$(DESTDIR) ! ! # This installs the IDE, the Launcher and other apps into /Applications ! frameworkinstallapps: ! $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installapps \ ! $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ ! srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix) ! ! # This install the unix python and pythonw tools in /usr/local/bin ! frameworkinstallunixtools: ! $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \ ! DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ ! srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix) ! ! # This installs the Demos and Tools into the applications directory. ! # It is not part of a normal frameworkinstall ! frameworkinstallextras: ! $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \ ! $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ ! srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) ! ! # This installs a few of the useful scripts in Tools/scripts ! scriptsinstall: ! SRCDIR=$(srcdir) $(RUNSHARED) \ ! ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py install \ ! --prefix=$(prefix) \ ! --install-scripts=$(BINDIR) \ ! --root=/$(DESTDIR) # Build the toplevel Makefile *************** *** 882,885 **** --- 972,976 ---- config.cache config.log pyconfig.h Modules/config.c -rm -rf build platform + -rm -rf $(PYTHONFRAMEWORKDIR) # Make things extra clean, before making a distribution: *************** *** 932,934 **** --- 1023,1033 ---- Python/thread.o: @THREADHEADERS@ + # Declare targets that aren't real files + .PHONY: all sharedmods oldsharedmods test quicktest memtest + .PHONY: install altinstall oldsharedinstall bininstall altbininstall + .PHONY: maninstall libinstall inclinstall libainstall sharedinstall + .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure + .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools + .PHONY: recheck autoconf clean clobber distclean smelly funny + # IF YOU PUT ANYTHING HERE IT WILL GO AWAY _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:47 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:47 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/StdSuites - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/StdSuites In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/StdSuites Log Message: Directory /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/lib-scriptpackages/StdSuites added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:49 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:49 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/framer/framer __init__.py, NONE, 1.1 bases.py, NONE, 1.1 function.py, NONE, 1.1 member.py, NONE, 1.1 slots.py, NONE, 1.1 struct.py, NONE, 1.1 structparse.py, NONE, 1.1 template.py, NONE, 1.1 util.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/framer/framer In directory centera.de:/home/tismer/slpdev/src/2.2/src/Tools/framer/framer Added Files: __init__.py bases.py function.py member.py slots.py struct.py structparse.py template.py util.py Log Message: added files --- NEW FILE: __init__.py --- """A tool to generate basic framework for C extension types. The basic ideas is the same as modulator, but the code generates code using many of the new features introduced in Python 2.2. It also takes a more declarative approach to generating code. """ --- NEW FILE: bases.py --- """Provides the Module and Type base classes that user code inherits from.""" __all__ = ["Module", "Type", "member"] from framer import struct, template from framer.function import Function, Method from framer.member import member from framer.slots import * from framer.util import cstring, unindent from types import FunctionType def sortitems(dict): L = dict.items() L.sort() return L # The Module and Type classes are implemented using metaclasses, # because most of the methods are class methods. It is easier to use # metaclasses than the cumbersome classmethod() builtin. They have # class methods because they are exposed to user code as base classes. class BaseMetaclass(type): """Shared infrastructure for generating modules and types.""" # just methoddef so far def dump_methoddef(self, f, functions, vars): def p(templ, vars=vars): # helper function to generate output print >> f, templ % vars if not functions: return p(template.methoddef_start) for name, func in sortitems(functions): if func.__doc__: p(template.methoddef_def_doc, func.vars) else: p(template.methoddef_def, func.vars) p(template.methoddef_end) class ModuleMetaclass(BaseMetaclass): """Provides methods for Module class.""" def gen(self): self.analyze() self.initvars() f = open(self.__filename, "w") self.dump(f) f.close() def analyze(self): self.name = getattr(self, "abbrev", self.__name__) self.__functions = {} self.__types = {} self.__members = False for name, obj in self.__dict__.iteritems(): if isinstance(obj, FunctionType): self.__functions[name] = Function(obj, self) elif isinstance(obj, TypeMetaclass): obj._TypeMetaclass__module = self.name obj.analyze() self.__types[name] = obj if obj.has_members(): self.__members = True def initvars(self): v = self.__vars = {} filename = getattr(self, "__file__", None) if filename is None: filename = self.__name__ + "module.c" self.__filename = v["FileName"] = filename name = v["ModuleName"] = self.__name__ v["MethodDefName"] = "%s_methods" % name v["ModuleDocstring"] = cstring(unindent(self.__doc__)) def dump(self, f): def p(templ, vars=self.__vars): # helper function to generate output print >> f, templ % vars p(template.module_start) if self.__members: p(template.member_include) print >> f if self.__doc__: p(template.module_doc) for name, type in sortitems(self.__types): type.dump(f) for name, func in sortitems(self.__functions): func.dump(f) self.dump_methoddef(f, self.__functions, self.__vars) p(template.module_init_start) for name, type in sortitems(self.__types): type.dump_init(f) p("}") class Module: __metaclass__ = ModuleMetaclass class TypeMetaclass(BaseMetaclass): def dump(self, f): self.initvars() # defined after initvars() so that __vars is defined def p(templ, vars=self.__vars): print >> f, templ % vars if self.struct is not None: print >> f, unindent(self.struct, False) if self.__doc__: p(template.docstring) for name, func in sortitems(self.__methods): func.dump(f) self.dump_methoddef(f, self.__methods, self.__vars) self.dump_memberdef(f) self.dump_slots(f) def has_members(self): if self.__members: return True else: return False def analyze(self): # called by ModuleMetaclass analyze() self.name = getattr(self, "abbrev", self.__name__) src = getattr(self, "struct", None) if src is not None: self.__struct = struct.parse(src) else: self.__struct = None self.__methods = {} self.__members = {} for cls in self.__mro__: for k, v in cls.__dict__.iteritems(): if isinstance(v, FunctionType): self.__methods[k] = Method(v, self) if isinstance(v, member): self.__members[k] = v assert self.__struct is not None v.register(k, self.__struct) self.analyze_slots() def analyze_slots(self): self.__slots = {} for s in Slots: if s.special is not None: meth = self.__methods.get(s.special) if meth is not None: self.__slots[s] = meth self.__slots[TP_NAME] = '"%s.%s"' % (self.__module, self.__name__) if self.__doc__: self.__slots[TP_DOC] = "%s_doc" % self.name if self.__struct is not None: self.__slots[TP_BASICSIZE] = "sizeof(%s)" % self.__struct.name self.__slots[TP_DEALLOC] = "%s_dealloc" % self.name if self.__methods: self.__slots[TP_METHODS] = "%s_methods" % self.name if self.__members: self.__slots[TP_MEMBERS] = "%s_members" % self.name def initvars(self): v = self.__vars = {} v["TypeName"] = self.__name__ v["CTypeName"] = "Py%s_Type" % self.__name__ v["MethodDefName"] = self.__slots[TP_METHODS] if self.__doc__: v["DocstringVar"] = self.__slots[TP_DOC] v["Docstring"] = cstring(unindent(self.__doc__)) if self.__struct is not None: v["StructName"] = self.__struct.name if self.__members: v["MemberDefName"] = self.__slots[TP_MEMBERS] def dump_memberdef(self, f): def p(templ, vars=self.__vars): print >> f, templ % vars if not self.__members: return p(template.memberdef_start) for name, slot in sortitems(self.__members): slot.dump(f) p(template.memberdef_end) def dump_slots(self, f): def p(templ, vars=self.__vars): print >> f, templ % vars if self.struct: p(template.dealloc_func, {"name" : self.__slots[TP_DEALLOC]}) p(template.type_struct_start) for s in Slots[:-5]: # XXX val = self.__slots.get(s, s.default) ntabs = 4 - (4 + len(val)) / 8 line = " %s,%s/* %s */" % (val, "\t" * ntabs, s.name) print >> f, line p(template.type_struct_end) def dump_init(self, f): def p(templ): print >> f, templ % self.__vars p(template.type_init_type) p(template.module_add_type) class Type: __metaclass__ = TypeMetaclass --- NEW FILE: function.py --- """Functions.""" from framer import template from framer.util import cstring, unindent METH_O = "METH_O" METH_NOARGS = "METH_NOARGS" METH_VARARGS = "METH_VARARGS" def parsefmt(fmt): for c in fmt: if c == '|': continue yield c class Argument: def __init__(self, name): self.name = name self.ctype = "PyObject *" self.default = None def __str__(self): return "%s%s" % (self.ctype, self.name) def setfmt(self, code): self.ctype = self._codes[code] if self.ctype[-1] != "*": self.ctype += " " _codes = {"O": "PyObject *", "i": "int", } def decl(self): if self.default is None: return str(self) + ";" else: return "%s = %s;" % (self, self.default) class _ArgumentList(object): # these instance variables should be initialized by subclasses ml_meth = None fmt = None def __init__(self, args): self.args = map(Argument, args) def __len__(self): return len(self.args) def __getitem__(self, i): return self.args[i] def dump_decls(self, f): pass class NoArgs(_ArgumentList): def __init__(self, args): assert len(args) == 0 super(NoArgs, self).__init__(args) self.ml_meth = METH_NOARGS def c_args(self): return "PyObject *self" class OneArg(_ArgumentList): def __init__(self, args): assert len(args) == 1 super(OneArg, self).__init__(args) self.ml_meth = METH_O def c_args(self): return "PyObject *self, %s" % self.args[0] class VarArgs(_ArgumentList): def __init__(self, args, fmt=None): super(VarArgs, self).__init__(args) self.ml_meth = METH_VARARGS if fmt is not None: self.fmt = fmt i = 0 for code in parsefmt(fmt): self.args[i].setfmt(code) i += 1 def c_args(self): return "PyObject *self, PyObject *args" def targets(self): return ", ".join(["&%s" % a.name for a in self.args]) def dump_decls(self, f): for a in self.args: print >> f, " %s" % a.decl() def ArgumentList(func, method): code = func.func_code args = code.co_varnames[:code.co_argcount] if method: args = args[1:] pyarg = getattr(func, "pyarg", None) if pyarg is not None: args = VarArgs(args, pyarg) if func.func_defaults: L = list(func.func_defaults) ndefault = len(L) i = len(args) - ndefault while L: args[i].default = L.pop(0) return args else: if len(args) == 0: return NoArgs(args) elif len(args) == 1: return OneArg(args) else: return VarArgs(args) class Function: method = False def __init__(self, func, parent): self._func = func self._parent = parent self.analyze() self.initvars() def dump(self, f): def p(templ, vars=None): # helper function to generate output if vars is None: vars = self.vars print >> f, templ % vars if self.__doc__: p(template.docstring) d = {"name" : self.vars["CName"], "args" : self.args.c_args(), } p(template.funcdef_start, d) self.args.dump_decls(f) if self.args.ml_meth == METH_VARARGS: p(template.varargs) p(template.funcdef_end) def analyze(self): self.__doc__ = self._func.__doc__ self.args = ArgumentList(self._func, self.method) def initvars(self): v = self.vars = {} v["PythonName"] = self._func.__name__ s = v["CName"] = "%s_%s" % (self._parent.name, self._func.__name__) v["DocstringVar"] = s + "_doc" v["MethType"] = self.args.ml_meth if self.__doc__: v["Docstring"] = cstring(unindent(self.__doc__)) if self.args.fmt is not None: v["ArgParse"] = self.args.fmt v["ArgTargets"] = self.args.targets() class Method(Function): method = True --- NEW FILE: member.py --- from framer import template from framer.util import cstring, unindent T_SHORT = "T_SHORT" T_INT = "T_INT" T_LONG = "T_LONG" T_FLOAT = "T_FLOAT" T_DOUBLE = "T_DOUBLE" T_STRING = "T_STRING" T_OBJECT = "T_OBJECT" T_CHAR = "T_CHAR" T_BYTE = "T_BYTE" T_UBYTE = "T_UBYTE" T_UINT = "T_UINT" T_ULONG = "T_ULONG" T_STRING_INPLACE = "T_STRING_INPLACE" T_OBJECT_EX = "T_OBJECT_EX" RO = READONLY = "READONLY" READ_RESTRICTED = "READ_RESTRICTED" WRITE_RESTRICTED = "WRITE_RESTRICTED" RESTRICT = "RESTRICTED" c2t = {"int" : T_INT, "unsigned int" : T_UINT, "long" : T_LONG, "unsigned long" : T_LONG, "float" : T_FLOAT, "double" : T_DOUBLE, "char *" : T_CHAR, "PyObject *" : T_OBJECT, } class member(object): def __init__(self, cname=None, type=None, flags=None, doc=None): self.type = type self.flags = flags self.cname = cname self.doc = doc self.name = None self.struct = None def register(self, name, struct): self.name = name self.struct = struct self.initvars() def initvars(self): v = self.vars = {} v["PythonName"] = self.name if self.cname is not None: v["CName"] = self.cname else: v["CName"] = self.name v["Flags"] = self.flags or "0" v["Type"] = self.get_type() if self.doc is not None: v["Docstring"] = cstring(unindent(self.doc)) v["StructName"] = self.struct.name def get_type(self): """Deduce type code from struct specification if not defined""" if self.type is not None: return self.type ctype = self.struct.get_type(self.name) return c2t[ctype] def dump(self, f): if self.doc is None: print >> f, template.memberdef_def % self.vars else: print >> f, template.memberdef_def_doc % self.vars --- NEW FILE: slots.py --- """Descriptions of all the slots in Python's type objects.""" class Slot(object): def __init__(self, name, cast=None, special=None, default="0"): self.name = name self.cast = cast self.special = special self.default = default Slots = (Slot("ob_size"), Slot("tp_name"), Slot("tp_basicsize"), Slot("tp_itemsize"), Slot("tp_dealloc", "destructor"), Slot("tp_print", "printfunc"), Slot("tp_getattr", "getattrfunc"), Slot("tp_setattr", "setattrfunc"), Slot("tp_compare", "cmpfunc", "__cmp__"), Slot("tp_repr", "reprfunc", "__repr__"), Slot("tp_as_number"), Slot("tp_as_sequence"), Slot("tp_as_mapping"), Slot("tp_hash", "hashfunc", "__hash__"), Slot("tp_call", "ternaryfunc", "__call__"), Slot("tp_str", "reprfunc", "__str__"), Slot("tp_getattro", "getattrofunc", "__getattr__", # XXX "PyObject_GenericGetAttr"), Slot("tp_setattro", "setattrofunc", "__setattr__"), Slot("tp_as_buffer"), Slot("tp_flags", default="Py_TPFLAGS_DEFAULT"), Slot("tp_doc"), Slot("tp_traverse", "traverseprox"), Slot("tp_clear", "inquiry"), Slot("tp_richcompare", "richcmpfunc"), Slot("tp_weaklistoffset"), Slot("tp_iter", "getiterfunc", "__iter__"), Slot("tp_iternext", "iternextfunc", "__next__"), # XXX Slot("tp_methods"), Slot("tp_members"), Slot("tp_getset"), Slot("tp_base"), Slot("tp_dict"), Slot("tp_descr_get", "descrgetfunc"), Slot("tp_descr_set", "descrsetfunc"), Slot("tp_dictoffset"), Slot("tp_init", "initproc", "__init__"), Slot("tp_alloc", "allocfunc"), Slot("tp_new", "newfunc"), Slot("tp_free", "freefunc"), Slot("tp_is_gc", "inquiry"), Slot("tp_bases"), Slot("tp_mro"), Slot("tp_cache"), Slot("tp_subclasses"), Slot("tp_weaklist"), ) # give some slots symbolic names TP_NAME = Slots[1] TP_BASICSIZE = Slots[2] TP_DEALLOC = Slots[4] TP_DOC = Slots[20] TP_METHODS = Slots[27] TP_MEMBERS = Slots[28] --- NEW FILE: struct.py --- """Rudimentary parser for C struct definitions.""" import re PyObject_HEAD = "PyObject_HEAD" PyObject_VAR_HEAD = "PyObject_VAR_HEAD" rx_name = re.compile("} (\w+);") class Struct: def __init__(self, name, head, members): self.name = name self.head = head self.members = members def get_type(self, name): for _name, type in self.members: if name == _name: return type raise ValueError, "no member named %s" % name def parse(s): """Parse a C struct definition. The parser is very restricted in what it will accept. """ lines = filter(None, s.split("\n")) # get non-empty lines assert lines[0].strip() == "typedef struct {" pyhead = lines[1].strip() assert (pyhead.startswith("PyObject") and pyhead.endswith("HEAD")) members = [] for line in lines[2:]: line = line.strip() if line.startswith("}"): break assert line.endswith(";") line = line[:-1] words = line.split() name = words[-1] type = " ".join(words[:-1]) if name[0] == "*": name = name[1:] type += " *" members.append((name, type)) name = None mo = rx_name.search(line) assert mo is not None name = mo.group(1) return Struct(name, pyhead, members) --- NEW FILE: structparse.py --- """Rudimentary parser for C struct definitions.""" import re PyObject_HEAD = "PyObject_HEAD" PyObject_VAR_HEAD = "PyObject_VAR_HEAD" rx_name = re.compile("} (\w+);") class Struct: def __init__(self, name, head, members): self.name = name self.head = head self.members = members def parse(s): """Parse a C struct definition. The parser is very restricted in what it will accept. """ lines = filter(None, s.split("\n")) # get non-empty lines assert lines[0].strip() == "typedef struct {" pyhead = lines[1].strip() assert (pyhead.startswith("PyObject") and pyhead.endswith("HEAD")) members = [] for line in lines[2:]: line = line.strip() if line.startswith("}"): break assert line.endswith(";") line = line[:-1] words = line.split() name = words[-1] type = " ".join(words[:-1]) if name[0] == "*": name = name[1:] type += " *" members.append((name, type)) name = None mo = rx_name.search(line) assert mo is not None name = mo.group(1) return Struct(name, pyhead, members) --- NEW FILE: template.py --- """framer's C code templates. Templates use the following variables: FileName: name of the file that contains the C source code ModuleName: name of the module, as in "import ModuleName" ModuleDocstring: C string containing the module doc string """ module_start = '#include "Python.h"' member_include = '#include "structmember.h"' module_doc = """\ PyDoc_STRVAR(%(ModuleName)s_doc, %(ModuleDocstring)s); """ methoddef_start = """\ static struct PyMethodDef %(MethodDefName)s[] = {""" methoddef_def = """\ {"%(PythonName)s", (PyCFunction)%(CName)s, %(MethType)s},""" methoddef_def_doc = """\ {"%(PythonName)s", (PyCFunction)%(CName)s, %(MethType)s, %(DocstringVar)s},""" methoddef_end = """\ {NULL, NULL} }; """ memberdef_start = """\ #define OFF(X) offsetof(%(StructName)s, X) static struct PyMemberDef %(MemberDefName)s[] = {""" memberdef_def_doc = """\ {"%(PythonName)s", %(Type)s, OFF(%(CName)s), %(Flags)s, %(Docstring)s},""" memberdef_def = """\ {"%(PythonName)s", %(Type)s, OFF(%(CName)s), %(Flags)s},""" memberdef_end = """\ {NULL} }; #undef OFF """ dealloc_func = """static void %(name)s(PyObject *ob) { } """ docstring = """\ PyDoc_STRVAR(%(DocstringVar)s, %(Docstring)s); """ funcdef_start = """\ static PyObject * %(name)s(%(args)s) {""" funcdef_end = """\ } """ varargs = """\ if (!PyArg_ParseTuple(args, \"%(ArgParse)s:%(PythonName)s\", %(ArgTargets)s)) return NULL;""" module_init_start = """\ PyMODINIT_FUNC init%(ModuleName)s(void) { PyObject *mod; mod = Py_InitModule3("%(ModuleName)s", %(MethodDefName)s, %(ModuleName)s_doc); if (mod == NULL) return; """ type_init_type = " %(CTypeName)s.ob_type = &PyType_Type;" module_add_type = """\ if (!PyObject_SetAttrString(mod, "%(TypeName)s", (PyObject *)&%(CTypeName)s)) return; """ type_struct_start = """\ static PyTypeObject %(CTypeName)s = { PyObject_HEAD_INIT(0)""" type_struct_end = """\ }; """ --- NEW FILE: util.py --- def cstring(s, width=70): """Return C string representation of a Python string. width specifies the maximum width of any line of the C string. """ L = [] for l in s.split("\n"): if len(l) < width: L.append(r'"%s\n"' % l) return "\n".join(L) def unindent(s, skipfirst=True): """Return an unindented version of a docstring. Removes indentation on lines following the first one, using the leading whitespace of the first indented line that is not blank to determine the indentation. """ lines = s.split("\n") if skipfirst: first = lines.pop(0) L = [first] else: L = [] indent = None for l in lines: ls = l.strip() if ls: indent = len(l) - len(ls) break L += [l[indent:] for l in lines] return "\n".join(L) _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:33 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:33 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/scripts byext.py, 1.1, NONE combinerefs.py, 1.1, NONE db2pickle.py, 1.1, NONE diff.py, 1.1, NONE gprof2html.py, 1.1, NONE hotshotmain.py, 1.1, NONE idle, 1.1, NONE pickle2db.py, 1.1, NONE setup.py, 1.1, NONE texcheck.py, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/scripts In directory centera.de:/home/tismer/slpdev/src/2.2/src/Tools/scripts Removed Files: byext.py combinerefs.py db2pickle.py diff.py gprof2html.py hotshotmain.py idle pickle2db.py setup.py texcheck.py Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- byext.py DELETED --- --- combinerefs.py DELETED --- --- db2pickle.py DELETED --- --- diff.py DELETED --- --- gprof2html.py DELETED --- --- hotshotmain.py DELETED --- --- idle DELETED --- --- pickle2db.py DELETED --- --- setup.py DELETED --- --- texcheck.py DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:50:59 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:50:59 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/distutils/command checkdep.py, 1.1, NONE register.py, 1.1, NONE wininst-6.exe, 1.1, NONE wininst-7.1.exe, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/distutils/command In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/distutils/command Removed Files: checkdep.py register.py wininst-6.exe wininst-7.1.exe Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- checkdep.py DELETED --- --- register.py DELETED --- --- wininst-6.exe DELETED --- --- wininst-7.1.exe DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:50:01 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:50:01 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Unsupported/mactcp - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Unsupported/mactcp In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Unsupported/mactcp Log Message: Directory /home/cvs/slpdev/src/2.2/src/Mac/Unsupported/mactcp added to the repository _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:38 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:38 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Tools/IDE PackageManager.icns, NONE, 1.1 PackageManager.plist, NONE, 1.1 PackageManager.py, NONE, 1.1 PythonIDE.icns, NONE, 1.1 PythonIDE.plist, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Tools/IDE In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Tools/IDE Added Files: PackageManager.icns PackageManager.plist PackageManager.py PythonIDE.icns PythonIDE.plist Log Message: added files --- NEW FILE: PackageManager.icns --- icns ?vwy???????? J????? ?--/B>=?>=?? ?&$"#"!?? |??????????? ?????????????? naLAMcqw??j???R]? uuvwwx????ww??????? x ? C_?????????? _tuvwwxyyqp?^? *%%+-P;0?^D#'? kt?ukF7 f\kosvy}???? ? 2? BUVVWXXYY/7?=?  1$?=*? 1'"7=)?? 4?x????????? ???????????? ?????????????????????????xx?w ???????????????????????? ??u&+6????? tQ?O???????? nqrrssttuvv?AE????????????..?- ? ? ? =$"?=!? ??='&$#%? ! ? ;''!? ???????????2  ?~???????Y5?34X??%z????????????????????????? ????????V34?3!27^???????????????????????????????? ?????????~x?w ??????????????????????????????? ????????????? G???????????????????? ??]OPRUW[^W? ???????ztok?ilnrux{~???????????? Dw???????c? ? ? ? ??? -??? ??????????????????????R.--,,?-/e??????? ?????????7.?- zzrlpty??b?^ $'%$!1q?ve@!#&()*+,.A^N<740F?^P8 ? XB*""#$%&($? A@?=;962/,*?()*+,-/12457889:;;<==< CFBundleDevelopmentRegion English CFBundleDocumentTypes CFBundleExecutable PackageManager CFBundleGetInfoString 2.3.2, (c) 2003 Python Software Foundation. CFBundleLongVersionString 2.3.2, (c) 2003 Python Software Foundation. NSHumanReadableCopyright Copyright 2003 Python Software Foundation. CFBundleShortVersionString 2.3.2 CFBundleIconFile PackageManager.icns CFBundleIdentifier org.python.pythonide CFBundleInfoDictionaryVersion 6.0 CFBundleName PythonIDE CFBundlePackageType APPL CFBundleSignature Pide CFBundleVersion 2.3.2 LSRequiresCarbon CSResourcesFileMapped --- NEW FILE: PackageManager.py --- # Prelude to allow running this as a main program def _init(): import macresource import sys, os macresource.need('DITL', 468, "PythonIDE.rsrc") widgetrespathsegs = [sys.exec_prefix, "Mac", "Tools", "IDE", "Widgets.rsrc"] widgetresfile = os.path.join(*widgetrespathsegs) if not os.path.exists(widgetresfile): widgetrespathsegs = [os.pardir, "Tools", "IDE", "Widgets.rsrc"] widgetresfile = os.path.join(*widgetrespathsegs) refno = macresource.need('CURS', 468, widgetresfile) if os.environ.has_key('PYTHONIDEPATH'): # For development set this environment variable ide_path = os.environ['PYTHONIDEPATH'] elif refno: # We're not a fullblown application idepathsegs = [sys.exec_prefix, "Mac", "Tools", "IDE"] ide_path = os.path.join(*idepathsegs) if not os.path.exists(ide_path): idepathsegs = [os.pardir, "Tools", "IDE"] for p in sys.path: ide_path = os.path.join(*([p]+idepathsegs)) if os.path.exists(ide_path): break else: # We are a fully frozen application ide_path = sys.argv[0] if ide_path not in sys.path: sys.path.insert(0, ide_path) if __name__ == '__main__': _init() import W import Wapplication from Carbon import Evt import EasyDialogs import FrameWork import sys import string import os import urllib import pimp PACKMAN_HOMEPAGE="http://www.python.org/packman" ELIPSES = '...' USER_INSTALL_DIR = os.path.join(os.environ.get('HOME', ''), 'Library', 'Python', sys.version[:3], 'site-packages') class PackageManagerMain(Wapplication.Application): def __init__(self): self.preffilepath = os.path.join("Python", "Package Install Manager Prefs") Wapplication.Application.__init__(self, 'Pimp') from Carbon import AE from Carbon import AppleEvents self.defaulturl = "" AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEOpenApplication, self.ignoreevent) AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEReopenApplication, self.ignoreevent) AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEPrintDocuments, self.ignoreevent) AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEQuitApplication, self.quitevent) if 1: import PyConsole # With -D option (OSX command line only) keep stderr, for debugging the IDE # itself. debug_stderr = None if len(sys.argv) >= 2 and sys.argv[1] == '-D': debug_stderr = sys.stderr del sys.argv[1] PyConsole.installoutput() if debug_stderr: sys.stderr = debug_stderr self.domenu_openstandard() self.mainloop() def makeusermenus(self): m = Wapplication.Menu(self.menubar, "File") newitem = FrameWork.MenuItem(m, "Open Standard Database", "N", 'openstandard') newexpitem = FrameWork.MenuItem(m, "Open Experimental Database", None, 'openexperimental') newexpitem.enable(pimp.PIMP_VERSION >= "0.4") openitem = FrameWork.MenuItem(m, "Open"+ELIPSES, "O", 'open') openURLitem = FrameWork.MenuItem(m, "Open URL"+ELIPSES, "D", 'openURL') FrameWork.Separator(m) moreinfoitem = FrameWork.MenuItem(m, "More Databases", None, 'opendatabasepage') FrameWork.Separator(m) closeitem = FrameWork.MenuItem(m, "Close", "W", 'close') ## saveitem = FrameWork.MenuItem(m, "Save", "S", 'save') ## saveasitem = FrameWork.MenuItem(m, "Save as"+ELIPSES, None, 'save_as') ## FrameWork.Separator(m) m = Wapplication.Menu(self.menubar, "Edit") undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo") FrameWork.Separator(m) cutitem = FrameWork.MenuItem(m, "Cut", 'X', "cut") copyitem = FrameWork.MenuItem(m, "Copy", "C", "copy") pasteitem = FrameWork.MenuItem(m, "Paste", "V", "paste") FrameWork.MenuItem(m, "Clear", None, "clear") FrameWork.Separator(m) selallitem = FrameWork.MenuItem(m, "Select all", "A", "selectall") m = Wapplication.Menu(self.menubar, "Package") runitem = FrameWork.MenuItem(m, "Install", "I", 'install') homepageitem = FrameWork.MenuItem(m, "Visit Homepage", None, 'homepage') self.openwindowsmenu = Wapplication.Menu(self.menubar, 'Windows') self.makeopenwindowsmenu() self.makehelpmenu() self._menustocheck = [closeitem, undoitem, cutitem, copyitem, pasteitem, selallitem, runitem, homepageitem] def makehelpmenu(self): python_app = os.path.join(sys.prefix, 'Resources/Python.app') help_source = os.path.join(python_app, 'Contents/Resources/English.lproj/Documentation') hashelp = os.path.isdir(help_source) self.helpmenu = m = self.gethelpmenu() helpitem1 = FrameWork.MenuItem(m, "PackageManager Help", None, self.domenu_packmanhelp) helpitem1.enable(hashelp) helpitem2 = FrameWork.MenuItem(m, "MacPython Help", None, self.domenu_pythonhelp) helpitem2.enable(hashelp) def quitevent(self, theAppleEvent, theReply): self._quit() def ignoreevent(self, theAppleEvent, theReply): pass def opendocsevent(self, theAppleEvent, theReply): W.SetCursor('watch') import aetools parameters, args = aetools.unpackevent(theAppleEvent) docs = parameters['----'] if type(docs) <> type([]): docs = [docs] for doc in docs: fsr, a = doc.FSResolveAlias(None) path = fsr.as_pathname() path = urllib.pathname2url(path) self.opendoc(path) def opendoc(self, url): if url: self.defaulturl = url PackageBrowser(url) def getabouttext(self): return "About Package Manager"+ELIPSES def do_about(self, id, item, window, event): EasyDialogs.Message("Package Install Manager for Python\nPackMan engine (pimp) version: %s" % pimp.PIMP_VERSION) def domenu_openstandard(self, *args): if pimp.PIMP_VERSION >= "0.4": url = pimp.getDefaultDatabase() else: # 0.3 compatibility url = None self.opendoc(url) def domenu_openexperimental(self, *args): database = pimp.getDefaultDatabase(experimental=True) self.opendoc(database) def domenu_open(self, *args): filename = EasyDialogs.AskFileForOpen(typeList=("TEXT",)) if filename: filename = urllib.pathname2url(filename) self.opendoc(filename) def domenu_openURL(self, *args): ok = EasyDialogs.AskYesNoCancel( "Warning: by opening a non-standard database " "you are trusting the maintainer of it " "to run arbitrary code on your machine.", yes="OK", no="") if ok <= 0: return url = EasyDialogs.AskString("URL of database to open:", default=self.defaulturl, ok="Open") if url: self.opendoc(url) def domenu_opendatabasepage(self): import ic icr = ic.IC() icr.launchurl(PACKMAN_HOMEPAGE) def makeopenwindowsmenu(self): for i in range(len(self.openwindowsmenu.items)): self.openwindowsmenu.menu.DeleteMenuItem(1) self.openwindowsmenu.items = [] windows = [] self._openwindows = {} for window in self._windows.keys(): title = window.GetWTitle() if not title: title = "" windows.append((title, window)) windows.sort() for title, window in windows: shortcut = None item = FrameWork.MenuItem(self.openwindowsmenu, title, shortcut, callback = self.domenu_openwindows) self._openwindows[item.item] = window self._openwindowscheckmark = 0 self.checkopenwindowsmenu() def domenu_openwindows(self, id, item, window, event): w = self._openwindows[item] w.ShowWindow() w.SelectWindow() def domenu_quit(self): self._quit() def domenu_save(self, *args): print "Save" def domenu_pythonhelp(self, *args): from Carbon import AH AH.AHGotoPage("MacPython Help", None, None) def domenu_packmanhelp(self, *args): from Carbon import AH AH.AHGotoPage("MacPython Help", "packman.html", None) def _quit(self): ## import PyConsole, PyEdit for window in self._windows.values(): try: rv = window.close() # ignore any errors while quitting except: rv = 0 # (otherwise, we can get stuck!) if rv and rv > 0: return ## try: ## PyConsole.console.writeprefs() ## PyConsole.output.writeprefs() ## PyEdit.searchengine.writeprefs() ## except: ## # Write to __stderr__ so the msg end up in Console.app and has ## # at least _some_ chance of getting read... ## # But: this is a workaround for way more serious problems with ## # the Python 2.2 Jaguar addon. ## sys.__stderr__.write("*** PythonIDE: Can't write preferences ***\n") self.quitting = 1 class PimpInterface: def setuppimp(self, url): self.pimpprefs = pimp.PimpPreferences() self.pimpdb = pimp.PimpDatabase(self.pimpprefs) if not url: url = self.pimpprefs.pimpDatabase try: self.pimpdb.appendURL(url) except IOError, arg: rv = "Cannot open %s: %s\n" % (url, arg) rv += "\nSee MacPython Package Manager help page." return rv except: rv = "Unspecified error while parsing database: %s\n" % url rv += "Usually, this means the database is not correctly formatted.\n" rv += "\nSee MacPython Package Manager help page." return rv # Check whether we can write the installation directory. # If not, set to the per-user directory, possibly # creating it, if needed. installDir = self.pimpprefs.installDir if not os.access(installDir, os.R_OK|os.W_OK|os.X_OK): rv = self.setuserinstall(1) if rv: return rv return self.pimpprefs.check() def closepimp(self): self.pimpdb.close() self.pimpprefs = None self.pimpdb = None self.packages = [] def setuserinstall(self, onoff): rv = "" if onoff: if not os.path.exists(USER_INSTALL_DIR): try: os.makedirs(USER_INSTALL_DIR) except OSError, arg: rv = rv + arg + "\n" if not USER_INSTALL_DIR in sys.path: import site reload(site) self.pimpprefs.setInstallDir(USER_INSTALL_DIR) else: self.pimpprefs.setInstallDir(None) rv = rv + self.pimpprefs.check() return rv def getuserinstall(self): return self.pimpprefs.installDir == USER_INSTALL_DIR def getbrowserdata(self, show_hidden=1): packages = self.pimpdb.list() if show_hidden: self.packages = packages else: self.packages = [] for pkg in packages: name = pkg.fullname() if name[0] == '(' and name[-1] == ')' and not show_hidden: continue self.packages.append(pkg) rv = [] for pkg in self.packages: name = pkg.fullname() status, _ = pkg.installed() description = pkg.description() description_line1 = description.split('\n')[0] rv.append((status, name, description_line1)) return rv def getstatus(self, number): pkg = self.packages[number] return pkg.installed() def installpackage(self, sel, output, recursive, force): pkg = self.packages[sel] pimpinstaller = pimp.PimpInstaller(self.pimpdb) list, messages = pimpinstaller.prepareInstall(pkg, force, recursive) if messages: return messages messages = pimpinstaller.install(list, output) return messages class PackageBrowser(PimpInterface): def __init__(self, url = None): self.ic = None messages = self.setuppimp(url) self.setupwidgets() self.updatestatus() self.showmessages(messages) def close(self): self.closepimp() def setupwidgets(self): DESCRIPTION_HEIGHT = 140 INSTALL_POS = -30 STATUS_POS = INSTALL_POS - (70 + DESCRIPTION_HEIGHT) self.w = W.Window((580, 600), "Python Install Manager", minsize = (400, 400), tabbable = 0) self.w.titlebar = W.TextBox((4, 8, 60, 18), 'Packages:') self.w.hidden_button = W.CheckBox((-100, 4, 0, 18), 'Show Hidden', self.updatestatus) data = self.getbrowserdata() self.w.packagebrowser = W.MultiList((4, 24, 0, STATUS_POS-2), data, self.listhit, cols=3) self.w.installed_l = W.TextBox((4, STATUS_POS, 70, 12), 'Installed:') self.w.installed = W.TextBox((74, STATUS_POS, 0, 12), '') self.w.message_l = W.TextBox((4, STATUS_POS+20, 70, 12), 'Status:') self.w.message = W.TextBox((74, STATUS_POS+20, 0, 12), '') self.w.homepage_button = W.Button((4, STATUS_POS+40, 96, 18), 'View homepage', self.do_homepage) self.w.description_l = W.TextBox((4, STATUS_POS+70, 70, 12), 'Description:') self.w.description = W.EditText((74, STATUS_POS+70, 0, DESCRIPTION_HEIGHT-4)) self.w.divline = W.HorizontalLine((0, INSTALL_POS-4, 0, 0)) self.w.verbose_button = W.CheckBox((84, INSTALL_POS+4, 60, 18), 'Verbose') self.w.recursive_button = W.CheckBox((146, INSTALL_POS+4, 120, 18), 'Install dependencies', self.updatestatus) self.w.recursive_button.set(1) self.w.force_button = W.CheckBox((268, INSTALL_POS+4, 70, 18), 'Overwrite', self.updatestatus) self.w.user_button = W.CheckBox((340, INSTALL_POS+4, 140, 18), 'For Current User Only', self.do_user) self.w.install_button = W.Button((4, INSTALL_POS+4, 56, 18), 'Install:', self.do_install) self.w.open() self.w.description.enable(0) def updatestatus(self): topcell = self.w.packagebrowser.gettopcell() sel = self.w.packagebrowser.getselection() data = self.getbrowserdata(self.w.hidden_button.get()) self.w.packagebrowser.setitems(data) self.w.user_button.set(self.getuserinstall()) if len(sel) != 1: self.w.installed.set('') self.w.message.set('') self.w.install_button.enable(0) self.w.homepage_button.enable(0) self.w.description.set('') self.w.verbose_button.enable(0) self.w.recursive_button.enable(0) self.w.force_button.enable(0) self.w.user_button.enable(0) else: sel = sel[0] if sel >= len(self.packages): sel = 0 self.w.packagebrowser.setselection([sel]) installed, message = self.getstatus(sel) self.w.installed.set(installed) self.w.message.set(message) self.w.install_button.enable(installed != "yes" or self.w.force_button.get()) self.w.homepage_button.enable(not not self.packages[sel].homepage()) description = self.packages[sel].description() description = description.splitlines() description = '\r'.join(description) self.w.description.set(description) self.w.verbose_button.enable(1) self.w.recursive_button.enable(1) self.w.force_button.enable(1) self.w.user_button.enable(1) self.w.packagebrowser.settopcell(topcell) def listhit(self, *args, **kwargs): self.updatestatus() def do_install(self): sel = self.w.packagebrowser.getselection()[0] if self.w.verbose_button.get(): output = sys.stdout else: output = None recursive = self.w.recursive_button.get() force = self.w.force_button.get() messages = self.installpackage(sel, output, recursive, force) # Re-read .pth files import site reload(site) self.updatestatus() self.showmessages(messages) def showmessages(self, messages): if messages: # To be on the safe side we always show the hidden packages, # they may be referred to in the error messages. if not self.w.hidden_button.get(): self.w.hidden_button.set(1) self.updatestatus() if type(messages) == list: messages = '\n'.join(messages) if self.w.verbose_button.get(): sys.stdout.write(messages + '\n') EasyDialogs.Message(messages) def do_homepage(self): sel = self.w.packagebrowser.getselection()[0] if not self.ic: import ic self.ic = ic.IC() self.ic.launchurl(self.packages[sel].homepage()) def do_user(self): messages = self.setuserinstall(self.w.user_button.get()) self.updatestatus() self.showmessages(messages) if __name__ == '__main__': PackageManagerMain() --- NEW FILE: PythonIDE.icns --- icns ??????????????????????????????_u_$VOIF CFBundleDevelopmentRegion English CFBundleDocumentTypes CFBundleTypeExtensions py CFBundleTypeIconFile PythonSource.icns CFBundleTypeName Python Module CFBundleTypeOSTypes TEXT CFBundleTypeRole Editor CFBundleExecutable PythonIDE CFBundleGetInfoString 2.4a0, (c) 2003 Python Software Foundation. CFBundleLongVersionString 2.4a0, (c) 2003 Python Software Foundation. NSHumanReadableCopyright Copyright 2003 Python Software Foundation. CFBundleShortVersionString 2.4a0 CFBundleHelpBookFolder PythonDocumentation CFBundleHelpBookName Python Help CFBundleHelpTOCFile index.html CFBundleIconFile PythonIDE.icns CFBundleIdentifier org.python.pythonide CFBundleInfoDictionaryVersion 6.0 CFBundleName PythonIDE CFBundlePackageType APPL CFBundleSignature Pide CFBundleVersion 2.3.2 LSRequiresCarbon CSResourcesFileMapped _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:15 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:15 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/plat-mac/Carbon AE.py, NONE, 1.1 AH.py, NONE, 1.1 Alias.py, NONE, 1.1 Aliases.py, NONE, 1.1 App.py, NONE, 1.1 Appearance.py, NONE, 1.1 AppleEvents.py, NONE, 1.1 AppleHelp.py, NONE, 1.1 CF.py, NONE, 1.1 CG.py, NONE, 1.1 CarbonEvents.py, NONE, 1.1 CarbonEvt.py, NONE, 1.1 Cm.py, NONE, 1.1 Components.py, NONE, 1.1 ControlAccessor.py, NONE, 1.1 Controls.py, NONE, 1.1 CoreFoundation.py, NONE, 1.1 CoreGraphics.py, NONE, 1.1 Ctl.py, NONE, 1.1 Dialogs.py, NONE, 1.1 Dlg.py, NONE, 1.1 Drag.py, NONE, 1.1 Dragconst.py, NONE, 1.1 Events.py, NONE, 1.1 Evt.py, NONE, 1.1 File.py, NONE, 1.1 Files.py, NONE, 1.1 Fm.py, NONE, 1.1 Folder.py, NONE, 1.1 Folders.py, NONE, 1.1 Fonts.py, NONE, 1.1 Help.py, NONE, 1.1 IBCarbon.py, NONE, 1.1 IBCarbonRuntime.py, NONE, 1.1 Icn.py, NONE, 1.1 Icons.py, NONE, 1.1 Launch.py, NONE, 1.1 LaunchServices.py, NONE, 1.1 List.py, NONE, 1.1 Lists.py, NONE, 1.1 MacHelp.py, NONE, 1.1 MacTextEditor.py, NONE, 1.1 MediaDescr.py, NONE, 1.1 Menu.py, NONE, 1.1 Menus.py, NONE, 1.1 Mlte.py, NONE, 1.1 OSA.py, NONE, 1.1 OSAconst.py, NONE, 1.1 QDOffscreen.py, NONE, 1.1 Qd.py, NONE, 1.1 Qdoffs.py, NONE, 1.1 Qt.py, NONE, 1.1 QuickDraw.py, NONE, 1.1 QuickTime.py, NONE, 1.1 Res.py, NONE, 1.1 Resources.py, NONE, 1.1 Scrap.py, NONE, 1.1 Snd.py, NONE, 1.1 Sndihooks.py, NONE, 1.1 Sound.py, NONE, 1.1 TE.py, NONE, 1.1 TextEdit.py, NONE, 1.1 WASTEconst.py, NONE, 1.1 Win.py, NONE, 1.1 Windows.py, NONE, 1.1 __init__.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/plat-mac/Carbon In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/plat-mac/Carbon Added Files: AE.py AH.py Alias.py Aliases.py App.py Appearance.py AppleEvents.py AppleHelp.py CF.py CG.py CarbonEvents.py CarbonEvt.py Cm.py Components.py ControlAccessor.py Controls.py CoreFoundation.py CoreGraphics.py Ctl.py Dialogs.py Dlg.py Drag.py Dragconst.py Events.py Evt.py File.py Files.py Fm.py Folder.py Folders.py Fonts.py Help.py IBCarbon.py IBCarbonRuntime.py Icn.py Icons.py Launch.py LaunchServices.py List.py Lists.py MacHelp.py MacTextEditor.py MediaDescr.py Menu.py Menus.py Mlte.py OSA.py OSAconst.py QDOffscreen.py Qd.py Qdoffs.py Qt.py QuickDraw.py QuickTime.py Res.py Resources.py Scrap.py Snd.py Sndihooks.py Sound.py TE.py TextEdit.py WASTEconst.py Win.py Windows.py __init__.py Log Message: added files --- NEW FILE: AE.py --- from _AE import * --- NEW FILE: AH.py --- from _AH import * --- NEW FILE: Alias.py --- from _Alias import * --- NEW FILE: Aliases.py --- # Generated from 'Aliases.h' def FOUR_CHAR_CODE(x): return x true = True false = False rAliasType = FOUR_CHAR_CODE('alis') kARMMountVol = 0x00000001 kARMNoUI = 0x00000002 kARMMultVols = 0x00000008 kARMSearch = 0x00000100 kARMSearchMore = 0x00000200 kARMSearchRelFirst = 0x00000400 asiZoneName = -3 asiServerName = -2 asiVolumeName = -1 asiAliasName = 0 asiParentName = 1 kResolveAliasFileNoUI = 0x00000001 --- NEW FILE: App.py --- from _App import * --- NEW FILE: Appearance.py --- # Generated from 'Appearance.h' def FOUR_CHAR_CODE(x): return x kAppearanceEventClass = FOUR_CHAR_CODE('appr') kAEAppearanceChanged = FOUR_CHAR_CODE('thme') kAESystemFontChanged = FOUR_CHAR_CODE('sysf') kAESmallSystemFontChanged = FOUR_CHAR_CODE('ssfn') kAEViewsFontChanged = FOUR_CHAR_CODE('vfnt') kThemeDataFileType = FOUR_CHAR_CODE('thme') kThemePlatinumFileType = FOUR_CHAR_CODE('pltn') kThemeCustomThemesFileType = FOUR_CHAR_CODE('scen') kThemeSoundTrackFileType = FOUR_CHAR_CODE('tsnd') kThemeBrushDialogBackgroundActive = 1 kThemeBrushDialogBackgroundInactive = 2 kThemeBrushAlertBackgroundActive = 3 kThemeBrushAlertBackgroundInactive = 4 kThemeBrushModelessDialogBackgroundActive = 5 kThemeBrushModelessDialogBackgroundInactive = 6 kThemeBrushUtilityWindowBackgroundActive = 7 kThemeBrushUtilityWindowBackgroundInactive = 8 kThemeBrushListViewSortColumnBackground = 9 kThemeBrushListViewBackground = 10 kThemeBrushIconLabelBackground = 11 kThemeBrushListViewSeparator = 12 kThemeBrushChasingArrows = 13 kThemeBrushDragHilite = 14 kThemeBrushDocumentWindowBackground = 15 kThemeBrushFinderWindowBackground = 16 kThemeBrushScrollBarDelimiterActive = 17 kThemeBrushScrollBarDelimiterInactive = 18 kThemeBrushFocusHighlight = 19 kThemeBrushPopupArrowActive = 20 kThemeBrushPopupArrowPressed = 21 kThemeBrushPopupArrowInactive = 22 kThemeBrushAppleGuideCoachmark = 23 kThemeBrushIconLabelBackgroundSelected = 24 kThemeBrushStaticAreaFill = 25 kThemeBrushActiveAreaFill = 26 kThemeBrushButtonFrameActive = 27 kThemeBrushButtonFrameInactive = 28 kThemeBrushButtonFaceActive = 29 kThemeBrushButtonFaceInactive = 30 kThemeBrushButtonFacePressed = 31 kThemeBrushButtonActiveDarkShadow = 32 kThemeBrushButtonActiveDarkHighlight = 33 kThemeBrushButtonActiveLightShadow = 34 kThemeBrushButtonActiveLightHighlight = 35 kThemeBrushButtonInactiveDarkShadow = 36 kThemeBrushButtonInactiveDarkHighlight = 37 kThemeBrushButtonInactiveLightShadow = 38 kThemeBrushButtonInactiveLightHighlight = 39 kThemeBrushButtonPressedDarkShadow = 40 kThemeBrushButtonPressedDarkHighlight = 41 kThemeBrushButtonPressedLightShadow = 42 kThemeBrushButtonPressedLightHighlight = 43 kThemeBrushBevelActiveLight = 44 kThemeBrushBevelActiveDark = 45 kThemeBrushBevelInactiveLight = 46 kThemeBrushBevelInactiveDark = 47 kThemeBrushNotificationWindowBackground = 48 kThemeBrushMovableModalBackground = 49 kThemeBrushSheetBackgroundOpaque = 50 kThemeBrushDrawerBackground = 51 kThemeBrushToolbarBackground = 52 kThemeBrushSheetBackgroundTransparent = 53 kThemeBrushMenuBackground = 54 kThemeBrushMenuBackgroundSelected = 55 kThemeBrushSheetBackground = kThemeBrushSheetBackgroundOpaque kThemeBrushBlack = -1 kThemeBrushWhite = -2 kThemeBrushPrimaryHighlightColor = -3 kThemeBrushSecondaryHighlightColor = -4 kThemeTextColorDialogActive = 1 kThemeTextColorDialogInactive = 2 kThemeTextColorAlertActive = 3 kThemeTextColorAlertInactive = 4 kThemeTextColorModelessDialogActive = 5 kThemeTextColorModelessDialogInactive = 6 kThemeTextColorWindowHeaderActive = 7 kThemeTextColorWindowHeaderInactive = 8 kThemeTextColorPlacardActive = 9 kThemeTextColorPlacardInactive = 10 kThemeTextColorPlacardPressed = 11 kThemeTextColorPushButtonActive = 12 kThemeTextColorPushButtonInactive = 13 kThemeTextColorPushButtonPressed = 14 kThemeTextColorBevelButtonActive = 15 kThemeTextColorBevelButtonInactive = 16 kThemeTextColorBevelButtonPressed = 17 kThemeTextColorPopupButtonActive = 18 kThemeTextColorPopupButtonInactive = 19 kThemeTextColorPopupButtonPressed = 20 kThemeTextColorIconLabel = 21 kThemeTextColorListView = 22 kThemeTextColorDocumentWindowTitleActive = 23 kThemeTextColorDocumentWindowTitleInactive = 24 kThemeTextColorMovableModalWindowTitleActive = 25 kThemeTextColorMovableModalWindowTitleInactive = 26 kThemeTextColorUtilityWindowTitleActive = 27 kThemeTextColorUtilityWindowTitleInactive = 28 kThemeTextColorPopupWindowTitleActive = 29 kThemeTextColorPopupWindowTitleInactive = 30 kThemeTextColorRootMenuActive = 31 kThemeTextColorRootMenuSelected = 32 kThemeTextColorRootMenuDisabled = 33 kThemeTextColorMenuItemActive = 34 kThemeTextColorMenuItemSelected = 35 kThemeTextColorMenuItemDisabled = 36 kThemeTextColorPopupLabelActive = 37 kThemeTextColorPopupLabelInactive = 38 kThemeTextColorTabFrontActive = 39 kThemeTextColorTabNonFrontActive = 40 kThemeTextColorTabNonFrontPressed = 41 kThemeTextColorTabFrontInactive = 42 kThemeTextColorTabNonFrontInactive = 43 kThemeTextColorIconLabelSelected = 44 kThemeTextColorBevelButtonStickyActive = 45 kThemeTextColorBevelButtonStickyInactive = 46 kThemeTextColorNotification = 47 kThemeTextColorBlack = -1 kThemeTextColorWhite = -2 kThemeStateInactive = 0 kThemeStateActive = 1 kThemeStatePressed = 2 kThemeStateRollover = 6 kThemeStateUnavailable = 7 kThemeStateUnavailableInactive = 8 kThemeStateDisabled = 0 kThemeStatePressedUp = 2 kThemeStatePressedDown = 3 kThemeArrowCursor = 0 kThemeCopyArrowCursor = 1 kThemeAliasArrowCursor = 2 kThemeContextualMenuArrowCursor = 3 kThemeIBeamCursor = 4 kThemeCrossCursor = 5 kThemePlusCursor = 6 kThemeWatchCursor = 7 kThemeClosedHandCursor = 8 kThemeOpenHandCursor = 9 kThemePointingHandCursor = 10 kThemeCountingUpHandCursor = 11 kThemeCountingDownHandCursor = 12 kThemeCountingUpAndDownHandCursor = 13 kThemeSpinningCursor = 14 kThemeResizeLeftCursor = 15 kThemeResizeRightCursor = 16 kThemeResizeLeftRightCursor = 17 kThemeMenuBarNormal = 0 kThemeMenuBarSelected = 1 kThemeMenuSquareMenuBar = (1 << 0) kThemeMenuActive = 0 kThemeMenuSelected = 1 kThemeMenuDisabled = 3 kThemeMenuTypePullDown = 0 kThemeMenuTypePopUp = 1 kThemeMenuTypeHierarchical = 2 kThemeMenuTypeInactive = 0x0100 kThemeMenuItemPlain = 0 kThemeMenuItemHierarchical = 1 kThemeMenuItemScrollUpArrow = 2 kThemeMenuItemScrollDownArrow = 3 kThemeMenuItemAtTop = 0x0100 kThemeMenuItemAtBottom = 0x0200 kThemeMenuItemHierBackground = 0x0400 kThemeMenuItemPopUpBackground = 0x0800 kThemeMenuItemHasIcon = 0x8000 kThemeMenuItemNoBackground = 0x4000 kThemeBackgroundTabPane = 1 kThemeBackgroundPlacard = 2 kThemeBackgroundWindowHeader = 3 kThemeBackgroundListViewWindowHeader = 4 kThemeBackgroundSecondaryGroupBox = 5 kThemeNameTag = FOUR_CHAR_CODE('name') kThemeVariantNameTag = FOUR_CHAR_CODE('varn') kThemeVariantBaseTintTag = FOUR_CHAR_CODE('tint') kThemeHighlightColorTag = FOUR_CHAR_CODE('hcol') kThemeScrollBarArrowStyleTag = FOUR_CHAR_CODE('sbar') kThemeScrollBarThumbStyleTag = FOUR_CHAR_CODE('sbth') kThemeSoundsEnabledTag = FOUR_CHAR_CODE('snds') kThemeDblClickCollapseTag = FOUR_CHAR_CODE('coll') kThemeAppearanceFileNameTag = FOUR_CHAR_CODE('thme') kThemeSystemFontTag = FOUR_CHAR_CODE('lgsf') kThemeSmallSystemFontTag = FOUR_CHAR_CODE('smsf') kThemeViewsFontTag = FOUR_CHAR_CODE('vfnt') kThemeViewsFontSizeTag = FOUR_CHAR_CODE('vfsz') kThemeDesktopPatternNameTag = FOUR_CHAR_CODE('patn') kThemeDesktopPatternTag = FOUR_CHAR_CODE('patt') kThemeDesktopPictureNameTag = FOUR_CHAR_CODE('dpnm') kThemeDesktopPictureAliasTag = FOUR_CHAR_CODE('dpal') kThemeDesktopPictureAlignmentTag = FOUR_CHAR_CODE('dpan') kThemeHighlightColorNameTag = FOUR_CHAR_CODE('hcnm') kThemeExamplePictureIDTag = FOUR_CHAR_CODE('epic') kThemeSoundTrackNameTag = FOUR_CHAR_CODE('sndt') kThemeSoundMaskTag = FOUR_CHAR_CODE('smsk') kThemeUserDefinedTag = FOUR_CHAR_CODE('user') kThemeSmoothFontEnabledTag = FOUR_CHAR_CODE('smoo') kThemeSmoothFontMinSizeTag = FOUR_CHAR_CODE('smos') kTiledOnScreen = 1 kCenterOnScreen = 2 kFitToScreen = 3 kFillScreen = 4 kUseBestGuess = 5 kThemeCheckBoxClassicX = 0 kThemeCheckBoxCheckMark = 1 kThemeScrollBarArrowsSingle = 0 kThemeScrollBarArrowsLowerRight = 1 kThemeScrollBarThumbNormal = 0 kThemeScrollBarThumbProportional = 1 kThemeSystemFont = 0 kThemeSmallSystemFont = 1 kThemeSmallEmphasizedSystemFont = 2 kThemeViewsFont = 3 kThemeEmphasizedSystemFont = 4 kThemeApplicationFont = 5 kThemeLabelFont = 6 kThemeMenuTitleFont = 100 kThemeMenuItemFont = 101 kThemeMenuItemMarkFont = 102 kThemeMenuItemCmdKeyFont = 103 kThemeWindowTitleFont = 104 kThemePushButtonFont = 105 kThemeUtilityWindowTitleFont = 106 kThemeAlertHeaderFont = 107 kThemeCurrentPortFont = 200 kThemeTabNonFront = 0 kThemeTabNonFrontPressed = 1 kThemeTabNonFrontInactive = 2 kThemeTabFront = 3 kThemeTabFrontInactive = 4 kThemeTabNonFrontUnavailable = 5 kThemeTabFrontUnavailable = 6 kThemeTabNorth = 0 kThemeTabSouth = 1 kThemeTabEast = 2 kThemeTabWest = 3 kThemeSmallTabHeight = 16 kThemeLargeTabHeight = 21 kThemeTabPaneOverlap = 3 kThemeSmallTabHeightMax = 19 kThemeLargeTabHeightMax = 24 kThemeMediumScrollBar = 0 kThemeSmallScrollBar = 1 kThemeMediumSlider = 2 kThemeMediumProgressBar = 3 kThemeMediumIndeterminateBar = 4 kThemeRelevanceBar = 5 kThemeSmallSlider = 6 kThemeLargeProgressBar = 7 kThemeLargeIndeterminateBar = 8 kThemeTrackActive = 0 kThemeTrackDisabled = 1 kThemeTrackNothingToScroll = 2 kThemeTrackInactive = 3 kThemeLeftOutsideArrowPressed = 0x01 kThemeLeftInsideArrowPressed = 0x02 kThemeLeftTrackPressed = 0x04 kThemeThumbPressed = 0x08 kThemeRightTrackPressed = 0x10 kThemeRightInsideArrowPressed = 0x20 kThemeRightOutsideArrowPressed = 0x40 kThemeTopOutsideArrowPressed = kThemeLeftOutsideArrowPressed kThemeTopInsideArrowPressed = kThemeLeftInsideArrowPressed kThemeTopTrackPressed = kThemeLeftTrackPressed kThemeBottomTrackPressed = kThemeRightTrackPressed kThemeBottomInsideArrowPressed = kThemeRightInsideArrowPressed kThemeBottomOutsideArrowPressed = kThemeRightOutsideArrowPressed kThemeThumbPlain = 0 kThemeThumbUpward = 1 kThemeThumbDownward = 2 kThemeTrackHorizontal = (1 << 0) kThemeTrackRightToLeft = (1 << 1) kThemeTrackShowThumb = (1 << 2) kThemeTrackThumbRgnIsNotGhost = (1 << 3) kThemeTrackNoScrollBarArrows = (1 << 4) kThemeWindowHasGrow = (1 << 0) kThemeWindowHasHorizontalZoom = (1 << 3) kThemeWindowHasVerticalZoom = (1 << 4) kThemeWindowHasFullZoom = kThemeWindowHasHorizontalZoom + kThemeWindowHasVerticalZoom kThemeWindowHasCloseBox = (1 << 5) kThemeWindowHasCollapseBox = (1 << 6) kThemeWindowHasTitleText = (1 << 7) kThemeWindowIsCollapsed = (1 << 8) kThemeWindowHasDirty = (1 << 9) kThemeDocumentWindow = 0 kThemeDialogWindow = 1 kThemeMovableDialogWindow = 2 kThemeAlertWindow = 3 kThemeMovableAlertWindow = 4 kThemePlainDialogWindow = 5 kThemeShadowDialogWindow = 6 kThemePopupWindow = 7 kThemeUtilityWindow = 8 kThemeUtilitySideWindow = 9 kThemeSheetWindow = 10 kThemeDrawerWindow = 11 kThemeWidgetCloseBox = 0 kThemeWidgetZoomBox = 1 kThemeWidgetCollapseBox = 2 kThemeWidgetDirtyCloseBox = 6 kThemeArrowLeft = 0 kThemeArrowDown = 1 kThemeArrowRight = 2 kThemeArrowUp = 3 kThemeArrow3pt = 0 kThemeArrow5pt = 1 kThemeArrow7pt = 2 kThemeArrow9pt = 3 kThemeGrowLeft = (1 << 0) kThemeGrowRight = (1 << 1) kThemeGrowUp = (1 << 2) kThemeGrowDown = (1 << 3) kThemePushButton = 0 kThemeCheckBox = 1 kThemeRadioButton = 2 kThemeBevelButton = 3 kThemeArrowButton = 4 kThemePopupButton = 5 kThemeDisclosureButton = 6 kThemeIncDecButton = 7 kThemeSmallBevelButton = 8 kThemeMediumBevelButton = 3 kThemeLargeBevelButton = 9 kThemeListHeaderButton = 10 kThemeRoundButton = 11 kThemeLargeRoundButton = 12 kThemeSmallCheckBox = 13 kThemeSmallRadioButton = 14 kThemeRoundedBevelButton = 15 kThemeNormalCheckBox = kThemeCheckBox kThemeNormalRadioButton = kThemeRadioButton kThemeButtonOff = 0 kThemeButtonOn = 1 kThemeButtonMixed = 2 kThemeDisclosureRight = 0 kThemeDisclosureDown = 1 kThemeDisclosureLeft = 2 kThemeAdornmentNone = 0 kThemeAdornmentDefault = (1 << 0) kThemeAdornmentFocus = (1 << 2) kThemeAdornmentRightToLeft = (1 << 4) kThemeAdornmentDrawIndicatorOnly = (1 << 5) kThemeAdornmentHeaderButtonLeftNeighborSelected = (1 << 6) kThemeAdornmentHeaderButtonRightNeighborSelected = (1 << 7) kThemeAdornmentHeaderButtonSortUp = (1 << 8) kThemeAdornmentHeaderMenuButton = (1 << 9) kThemeAdornmentHeaderButtonNoShadow = (1 << 10) kThemeAdornmentHeaderButtonShadowOnly = (1 << 11) kThemeAdornmentNoShadow = kThemeAdornmentHeaderButtonNoShadow kThemeAdornmentShadowOnly = kThemeAdornmentHeaderButtonShadowOnly kThemeAdornmentArrowLeftArrow = (1 << 6) kThemeAdornmentArrowDownArrow = (1 << 7) kThemeAdornmentArrowDoubleArrow = (1 << 8) kThemeAdornmentArrowUpArrow = (1 << 9) kThemeNoSounds = 0 kThemeWindowSoundsMask = (1 << 0) kThemeMenuSoundsMask = (1 << 1) kThemeControlSoundsMask = (1 << 2) kThemeFinderSoundsMask = (1 << 3) kThemeDragSoundNone = 0 kThemeDragSoundMoveWindow = FOUR_CHAR_CODE('wmov') kThemeDragSoundGrowWindow = FOUR_CHAR_CODE('wgro') kThemeDragSoundMoveUtilWindow = FOUR_CHAR_CODE('umov') kThemeDragSoundGrowUtilWindow = FOUR_CHAR_CODE('ugro') kThemeDragSoundMoveDialog = FOUR_CHAR_CODE('dmov') kThemeDragSoundMoveAlert = FOUR_CHAR_CODE('amov') kThemeDragSoundMoveIcon = FOUR_CHAR_CODE('imov') kThemeDragSoundSliderThumb = FOUR_CHAR_CODE('slth') kThemeDragSoundSliderGhost = FOUR_CHAR_CODE('slgh') kThemeDragSoundScrollBarThumb = FOUR_CHAR_CODE('sbth') kThemeDragSoundScrollBarGhost = FOUR_CHAR_CODE('sbgh') kThemeDragSoundScrollBarArrowDecreasing = FOUR_CHAR_CODE('sbad') kThemeDragSoundScrollBarArrowIncreasing = FOUR_CHAR_CODE('sbai') kThemeDragSoundDragging = FOUR_CHAR_CODE('drag') kThemeSoundNone = 0 kThemeSoundMenuOpen = FOUR_CHAR_CODE('mnuo') kThemeSoundMenuClose = FOUR_CHAR_CODE('mnuc') kThemeSoundMenuItemHilite = FOUR_CHAR_CODE('mnui') kThemeSoundMenuItemRelease = FOUR_CHAR_CODE('mnus') kThemeSoundWindowClosePress = FOUR_CHAR_CODE('wclp') kThemeSoundWindowCloseEnter = FOUR_CHAR_CODE('wcle') kThemeSoundWindowCloseExit = FOUR_CHAR_CODE('wclx') kThemeSoundWindowCloseRelease = FOUR_CHAR_CODE('wclr') kThemeSoundWindowZoomPress = FOUR_CHAR_CODE('wzmp') kThemeSoundWindowZoomEnter = FOUR_CHAR_CODE('wzme') kThemeSoundWindowZoomExit = FOUR_CHAR_CODE('wzmx') kThemeSoundWindowZoomRelease = FOUR_CHAR_CODE('wzmr') kThemeSoundWindowCollapsePress = FOUR_CHAR_CODE('wcop') kThemeSoundWindowCollapseEnter = FOUR_CHAR_CODE('wcoe') kThemeSoundWindowCollapseExit = FOUR_CHAR_CODE('wcox') kThemeSoundWindowCollapseRelease = FOUR_CHAR_CODE('wcor') kThemeSoundWindowDragBoundary = FOUR_CHAR_CODE('wdbd') kThemeSoundUtilWinClosePress = FOUR_CHAR_CODE('uclp') kThemeSoundUtilWinCloseEnter = FOUR_CHAR_CODE('ucle') kThemeSoundUtilWinCloseExit = FOUR_CHAR_CODE('uclx') kThemeSoundUtilWinCloseRelease = FOUR_CHAR_CODE('uclr') kThemeSoundUtilWinZoomPress = FOUR_CHAR_CODE('uzmp') kThemeSoundUtilWinZoomEnter = FOUR_CHAR_CODE('uzme') kThemeSoundUtilWinZoomExit = FOUR_CHAR_CODE('uzmx') kThemeSoundUtilWinZoomRelease = FOUR_CHAR_CODE('uzmr') kThemeSoundUtilWinCollapsePress = FOUR_CHAR_CODE('ucop') kThemeSoundUtilWinCollapseEnter = FOUR_CHAR_CODE('ucoe') kThemeSoundUtilWinCollapseExit = FOUR_CHAR_CODE('ucox') kThemeSoundUtilWinCollapseRelease = FOUR_CHAR_CODE('ucor') kThemeSoundUtilWinDragBoundary = FOUR_CHAR_CODE('udbd') kThemeSoundWindowOpen = FOUR_CHAR_CODE('wopn') kThemeSoundWindowClose = FOUR_CHAR_CODE('wcls') kThemeSoundWindowZoomIn = FOUR_CHAR_CODE('wzmi') kThemeSoundWindowZoomOut = FOUR_CHAR_CODE('wzmo') kThemeSoundWindowCollapseUp = FOUR_CHAR_CODE('wcol') kThemeSoundWindowCollapseDown = FOUR_CHAR_CODE('wexp') kThemeSoundWindowActivate = FOUR_CHAR_CODE('wact') kThemeSoundUtilWindowOpen = FOUR_CHAR_CODE('uopn') kThemeSoundUtilWindowClose = FOUR_CHAR_CODE('ucls') kThemeSoundUtilWindowZoomIn = FOUR_CHAR_CODE('uzmi') kThemeSoundUtilWindowZoomOut = FOUR_CHAR_CODE('uzmo') kThemeSoundUtilWindowCollapseUp = FOUR_CHAR_CODE('ucol') kThemeSoundUtilWindowCollapseDown = FOUR_CHAR_CODE('uexp') kThemeSoundUtilWindowActivate = FOUR_CHAR_CODE('uact') kThemeSoundDialogOpen = FOUR_CHAR_CODE('dopn') kThemeSoundDialogClose = FOUR_CHAR_CODE('dlgc') kThemeSoundAlertOpen = FOUR_CHAR_CODE('aopn') kThemeSoundAlertClose = FOUR_CHAR_CODE('altc') kThemeSoundPopupWindowOpen = FOUR_CHAR_CODE('pwop') kThemeSoundPopupWindowClose = FOUR_CHAR_CODE('pwcl') kThemeSoundButtonPress = FOUR_CHAR_CODE('btnp') kThemeSoundButtonEnter = FOUR_CHAR_CODE('btne') kThemeSoundButtonExit = FOUR_CHAR_CODE('btnx') kThemeSoundButtonRelease = FOUR_CHAR_CODE('btnr') kThemeSoundDefaultButtonPress = FOUR_CHAR_CODE('dbtp') kThemeSoundDefaultButtonEnter = FOUR_CHAR_CODE('dbte') kThemeSoundDefaultButtonExit = FOUR_CHAR_CODE('dbtx') kThemeSoundDefaultButtonRelease = FOUR_CHAR_CODE('dbtr') kThemeSoundCancelButtonPress = FOUR_CHAR_CODE('cbtp') kThemeSoundCancelButtonEnter = FOUR_CHAR_CODE('cbte') kThemeSoundCancelButtonExit = FOUR_CHAR_CODE('cbtx') kThemeSoundCancelButtonRelease = FOUR_CHAR_CODE('cbtr') kThemeSoundCheckboxPress = FOUR_CHAR_CODE('chkp') kThemeSoundCheckboxEnter = FOUR_CHAR_CODE('chke') kThemeSoundCheckboxExit = FOUR_CHAR_CODE('chkx') kThemeSoundCheckboxRelease = FOUR_CHAR_CODE('chkr') kThemeSoundRadioPress = FOUR_CHAR_CODE('radp') kThemeSoundRadioEnter = FOUR_CHAR_CODE('rade') kThemeSoundRadioExit = FOUR_CHAR_CODE('radx') kThemeSoundRadioRelease = FOUR_CHAR_CODE('radr') kThemeSoundScrollArrowPress = FOUR_CHAR_CODE('sbap') kThemeSoundScrollArrowEnter = FOUR_CHAR_CODE('sbae') kThemeSoundScrollArrowExit = FOUR_CHAR_CODE('sbax') kThemeSoundScrollArrowRelease = FOUR_CHAR_CODE('sbar') kThemeSoundScrollEndOfTrack = FOUR_CHAR_CODE('sbte') kThemeSoundScrollTrackPress = FOUR_CHAR_CODE('sbtp') kThemeSoundSliderEndOfTrack = FOUR_CHAR_CODE('slte') kThemeSoundSliderTrackPress = FOUR_CHAR_CODE('sltp') kThemeSoundBalloonOpen = FOUR_CHAR_CODE('blno') kThemeSoundBalloonClose = FOUR_CHAR_CODE('blnc') kThemeSoundBevelPress = FOUR_CHAR_CODE('bevp') kThemeSoundBevelEnter = FOUR_CHAR_CODE('beve') kThemeSoundBevelExit = FOUR_CHAR_CODE('bevx') kThemeSoundBevelRelease = FOUR_CHAR_CODE('bevr') kThemeSoundLittleArrowUpPress = FOUR_CHAR_CODE('laup') kThemeSoundLittleArrowDnPress = FOUR_CHAR_CODE('ladp') kThemeSoundLittleArrowEnter = FOUR_CHAR_CODE('lare') kThemeSoundLittleArrowExit = FOUR_CHAR_CODE('larx') kThemeSoundLittleArrowUpRelease = FOUR_CHAR_CODE('laur') kThemeSoundLittleArrowDnRelease = FOUR_CHAR_CODE('ladr') kThemeSoundPopupPress = FOUR_CHAR_CODE('popp') kThemeSoundPopupEnter = FOUR_CHAR_CODE('pope') kThemeSoundPopupExit = FOUR_CHAR_CODE('popx') kThemeSoundPopupRelease = FOUR_CHAR_CODE('popr') kThemeSoundDisclosurePress = FOUR_CHAR_CODE('dscp') kThemeSoundDisclosureEnter = FOUR_CHAR_CODE('dsce') kThemeSoundDisclosureExit = FOUR_CHAR_CODE('dscx') kThemeSoundDisclosureRelease = FOUR_CHAR_CODE('dscr') kThemeSoundTabPressed = FOUR_CHAR_CODE('tabp') kThemeSoundTabEnter = FOUR_CHAR_CODE('tabe') kThemeSoundTabExit = FOUR_CHAR_CODE('tabx') kThemeSoundTabRelease = FOUR_CHAR_CODE('tabr') kThemeSoundDragTargetHilite = FOUR_CHAR_CODE('dthi') kThemeSoundDragTargetUnhilite = FOUR_CHAR_CODE('dtuh') kThemeSoundDragTargetDrop = FOUR_CHAR_CODE('dtdr') kThemeSoundEmptyTrash = FOUR_CHAR_CODE('ftrs') kThemeSoundSelectItem = FOUR_CHAR_CODE('fsel') kThemeSoundNewItem = FOUR_CHAR_CODE('fnew') kThemeSoundReceiveDrop = FOUR_CHAR_CODE('fdrp') kThemeSoundCopyDone = FOUR_CHAR_CODE('fcpd') kThemeSoundResolveAlias = FOUR_CHAR_CODE('fral') kThemeSoundLaunchApp = FOUR_CHAR_CODE('flap') kThemeSoundDiskInsert = FOUR_CHAR_CODE('dski') kThemeSoundDiskEject = FOUR_CHAR_CODE('dske') kThemeSoundFinderDragOnIcon = FOUR_CHAR_CODE('fdon') kThemeSoundFinderDragOffIcon = FOUR_CHAR_CODE('fdof') kThemePopupTabNormalPosition = 0 kThemePopupTabCenterOnWindow = 1 kThemePopupTabCenterOnOffset = 2 kThemeMetricScrollBarWidth = 0 kThemeMetricSmallScrollBarWidth = 1 kThemeMetricCheckBoxHeight = 2 kThemeMetricRadioButtonHeight = 3 kThemeMetricEditTextWhitespace = 4 kThemeMetricEditTextFrameOutset = 5 kThemeMetricListBoxFrameOutset = 6 kThemeMetricFocusRectOutset = 7 kThemeMetricImageWellThickness = 8 kThemeMetricScrollBarOverlap = 9 kThemeMetricLargeTabHeight = 10 kThemeMetricLargeTabCapsWidth = 11 kThemeMetricTabFrameOverlap = 12 kThemeMetricTabIndentOrStyle = 13 kThemeMetricTabOverlap = 14 kThemeMetricSmallTabHeight = 15 kThemeMetricSmallTabCapsWidth = 16 kThemeMetricDisclosureButtonHeight = 17 kThemeMetricRoundButtonSize = 18 kThemeMetricPushButtonHeight = 19 kThemeMetricListHeaderHeight = 20 kThemeMetricSmallCheckBoxHeight = 21 kThemeMetricDisclosureButtonWidth = 22 kThemeMetricSmallDisclosureButtonHeight = 23 kThemeMetricSmallDisclosureButtonWidth = 24 kThemeMetricDisclosureTriangleHeight = 25 kThemeMetricDisclosureTriangleWidth = 26 kThemeMetricLittleArrowsHeight = 27 kThemeMetricLittleArrowsWidth = 28 kThemeMetricPaneSplitterHeight = 29 kThemeMetricPopupButtonHeight = 30 kThemeMetricSmallPopupButtonHeight = 31 kThemeMetricLargeProgressBarThickness = 32 kThemeMetricPullDownHeight = 33 kThemeMetricSmallPullDownHeight = 34 kThemeMetricSmallPushButtonHeight = 35 kThemeMetricSmallRadioButtonHeight = 36 kThemeMetricRelevanceIndicatorHeight = 37 kThemeMetricResizeControlHeight = 38 kThemeMetricSmallResizeControlHeight = 39 kThemeMetricLargeRoundButtonSize = 40 kThemeMetricHSliderHeight = 41 kThemeMetricHSliderTickHeight = 42 kThemeMetricSmallHSliderHeight = 43 kThemeMetricSmallHSliderTickHeight = 44 kThemeMetricVSliderWidth = 45 kThemeMetricVSliderTickWidth = 46 kThemeMetricSmallVSliderWidth = 47 kThemeMetricSmallVSliderTickWidth = 48 kThemeMetricTitleBarControlsHeight = 49 kThemeMetricCheckBoxWidth = 50 kThemeMetricSmallCheckBoxWidth = 51 kThemeMetricRadioButtonWidth = 52 kThemeMetricSmallRadioButtonWidth = 53 kThemeMetricSmallHSliderMinThumbWidth = 54 kThemeMetricSmallVSliderMinThumbHeight = 55 kThemeMetricSmallHSliderTickOffset = 56 kThemeMetricSmallVSliderTickOffset = 57 kThemeMetricNormalProgressBarThickness = 58 kThemeMetricProgressBarShadowOutset = 59 kThemeMetricSmallProgressBarShadowOutset = 60 kThemeMetricPrimaryGroupBoxContentInset = 61 kThemeMetricSecondaryGroupBoxContentInset = 62 kThemeMetricMenuMarkColumnWidth = 63 kThemeMetricMenuExcludedMarkColumnWidth = 64 kThemeMetricMenuMarkIndent = 65 kThemeMetricMenuTextLeadingEdgeMargin = 66 kThemeMetricMenuTextTrailingEdgeMargin = 67 kThemeMetricMenuIndentWidth = 68 kThemeMetricMenuIconTrailingEdgeMargin = 69 # appearanceBadBrushIndexErr = themeInvalidBrushErr # appearanceProcessRegisteredErr = themeProcessRegisteredErr # appearanceProcessNotRegisteredErr = themeProcessNotRegisteredErr # appearanceBadTextColorIndexErr = themeBadTextColorErr # appearanceThemeHasNoAccents = themeHasNoAccentsErr # appearanceBadCursorIndexErr = themeBadCursorIndexErr kThemeActiveDialogBackgroundBrush = kThemeBrushDialogBackgroundActive kThemeInactiveDialogBackgroundBrush = kThemeBrushDialogBackgroundInactive kThemeActiveAlertBackgroundBrush = kThemeBrushAlertBackgroundActive kThemeInactiveAlertBackgroundBrush = kThemeBrushAlertBackgroundInactive kThemeActiveModelessDialogBackgroundBrush = kThemeBrushModelessDialogBackgroundActive kThemeInactiveModelessDialogBackgroundBrush = kThemeBrushModelessDialogBackgroundInactive kThemeActiveUtilityWindowBackgroundBrush = kThemeBrushUtilityWindowBackgroundActive kThemeInactiveUtilityWindowBackgroundBrush = kThemeBrushUtilityWindowBackgroundInactive kThemeListViewSortColumnBackgroundBrush = kThemeBrushListViewSortColumnBackground kThemeListViewBackgroundBrush = kThemeBrushListViewBackground kThemeIconLabelBackgroundBrush = kThemeBrushIconLabelBackground kThemeListViewSeparatorBrush = kThemeBrushListViewSeparator kThemeChasingArrowsBrush = kThemeBrushChasingArrows kThemeDragHiliteBrush = kThemeBrushDragHilite kThemeDocumentWindowBackgroundBrush = kThemeBrushDocumentWindowBackground kThemeFinderWindowBackgroundBrush = kThemeBrushFinderWindowBackground kThemeActiveScrollBarDelimiterBrush = kThemeBrushScrollBarDelimiterActive kThemeInactiveScrollBarDelimiterBrush = kThemeBrushScrollBarDelimiterInactive kThemeFocusHighlightBrush = kThemeBrushFocusHighlight kThemeActivePopupArrowBrush = kThemeBrushPopupArrowActive kThemePressedPopupArrowBrush = kThemeBrushPopupArrowPressed kThemeInactivePopupArrowBrush = kThemeBrushPopupArrowInactive kThemeAppleGuideCoachmarkBrush = kThemeBrushAppleGuideCoachmark kThemeActiveDialogTextColor = kThemeTextColorDialogActive kThemeInactiveDialogTextColor = kThemeTextColorDialogInactive kThemeActiveAlertTextColor = kThemeTextColorAlertActive kThemeInactiveAlertTextColor = kThemeTextColorAlertInactive kThemeActiveModelessDialogTextColor = kThemeTextColorModelessDialogActive kThemeInactiveModelessDialogTextColor = kThemeTextColorModelessDialogInactive kThemeActiveWindowHeaderTextColor = kThemeTextColorWindowHeaderActive kThemeInactiveWindowHeaderTextColor = kThemeTextColorWindowHeaderInactive kThemeActivePlacardTextColor = kThemeTextColorPlacardActive kThemeInactivePlacardTextColor = kThemeTextColorPlacardInactive kThemePressedPlacardTextColor = kThemeTextColorPlacardPressed kThemeActivePushButtonTextColor = kThemeTextColorPushButtonActive kThemeInactivePushButtonTextColor = kThemeTextColorPushButtonInactive kThemePressedPushButtonTextColor = kThemeTextColorPushButtonPressed kThemeActiveBevelButtonTextColor = kThemeTextColorBevelButtonActive kThemeInactiveBevelButtonTextColor = kThemeTextColorBevelButtonInactive kThemePressedBevelButtonTextColor = kThemeTextColorBevelButtonPressed kThemeActivePopupButtonTextColor = kThemeTextColorPopupButtonActive kThemeInactivePopupButtonTextColor = kThemeTextColorPopupButtonInactive kThemePressedPopupButtonTextColor = kThemeTextColorPopupButtonPressed kThemeIconLabelTextColor = kThemeTextColorIconLabel kThemeListViewTextColor = kThemeTextColorListView kThemeActiveDocumentWindowTitleTextColor = kThemeTextColorDocumentWindowTitleActive kThemeInactiveDocumentWindowTitleTextColor = kThemeTextColorDocumentWindowTitleInactive kThemeActiveMovableModalWindowTitleTextColor = kThemeTextColorMovableModalWindowTitleActive kThemeInactiveMovableModalWindowTitleTextColor = kThemeTextColorMovableModalWindowTitleInactive kThemeActiveUtilityWindowTitleTextColor = kThemeTextColorUtilityWindowTitleActive kThemeInactiveUtilityWindowTitleTextColor = kThemeTextColorUtilityWindowTitleInactive kThemeActivePopupWindowTitleColor = kThemeTextColorPopupWindowTitleActive kThemeInactivePopupWindowTitleColor = kThemeTextColorPopupWindowTitleInactive kThemeActiveRootMenuTextColor = kThemeTextColorRootMenuActive kThemeSelectedRootMenuTextColor = kThemeTextColorRootMenuSelected kThemeDisabledRootMenuTextColor = kThemeTextColorRootMenuDisabled kThemeActiveMenuItemTextColor = kThemeTextColorMenuItemActive kThemeSelectedMenuItemTextColor = kThemeTextColorMenuItemSelected kThemeDisabledMenuItemTextColor = kThemeTextColorMenuItemDisabled kThemeActivePopupLabelTextColor = kThemeTextColorPopupLabelActive kThemeInactivePopupLabelTextColor = kThemeTextColorPopupLabelInactive kAEThemeSwitch = kAEAppearanceChanged kThemeNoAdornment = kThemeAdornmentNone kThemeDefaultAdornment = kThemeAdornmentDefault kThemeFocusAdornment = kThemeAdornmentFocus kThemeRightToLeftAdornment = kThemeAdornmentRightToLeft kThemeDrawIndicatorOnly = kThemeAdornmentDrawIndicatorOnly kThemeBrushPassiveAreaFill = kThemeBrushStaticAreaFill kThemeMetricCheckBoxGlyphHeight = kThemeMetricCheckBoxHeight kThemeMetricRadioButtonGlyphHeight = kThemeMetricRadioButtonHeight kThemeMetricDisclosureButtonSize = kThemeMetricDisclosureButtonHeight kThemeMetricBestListHeaderHeight = kThemeMetricListHeaderHeight kThemeMetricSmallProgressBarThickness = kThemeMetricNormalProgressBarThickness kThemeMetricProgressBarThickness = kThemeMetricLargeProgressBarThickness kThemeScrollBar = kThemeMediumScrollBar kThemeSlider = kThemeMediumSlider kThemeProgressBar = kThemeMediumProgressBar kThemeIndeterminateBar = kThemeMediumIndeterminateBar --- NEW FILE: AppleEvents.py --- # Generated from 'AEDataModel.h' def FOUR_CHAR_CODE(x): return x typeBoolean = FOUR_CHAR_CODE('bool') typeChar = FOUR_CHAR_CODE('TEXT') typeSInt16 = FOUR_CHAR_CODE('shor') typeSInt32 = FOUR_CHAR_CODE('long') typeUInt32 = FOUR_CHAR_CODE('magn') typeSInt64 = FOUR_CHAR_CODE('comp') typeIEEE32BitFloatingPoint = FOUR_CHAR_CODE('sing') typeIEEE64BitFloatingPoint = FOUR_CHAR_CODE('doub') type128BitFloatingPoint = FOUR_CHAR_CODE('ldbl') typeDecimalStruct = FOUR_CHAR_CODE('decm') typeSMInt = typeSInt16 typeShortInteger = typeSInt16 typeInteger = typeSInt32 typeLongInteger = typeSInt32 typeMagnitude = typeUInt32 typeComp = typeSInt64 typeSMFloat = typeIEEE32BitFloatingPoint typeShortFloat = typeIEEE32BitFloatingPoint typeFloat = typeIEEE64BitFloatingPoint typeLongFloat = typeIEEE64BitFloatingPoint typeExtended = FOUR_CHAR_CODE('exte') typeAEList = FOUR_CHAR_CODE('list') typeAERecord = FOUR_CHAR_CODE('reco') typeAppleEvent = FOUR_CHAR_CODE('aevt') typeEventRecord = FOUR_CHAR_CODE('evrc') typeTrue = FOUR_CHAR_CODE('true') typeFalse = FOUR_CHAR_CODE('fals') typeAlias = FOUR_CHAR_CODE('alis') typeEnumerated = FOUR_CHAR_CODE('enum') typeType = FOUR_CHAR_CODE('type') typeAppParameters = FOUR_CHAR_CODE('appa') typeProperty = FOUR_CHAR_CODE('prop') typeFSS = FOUR_CHAR_CODE('fss ') typeFSRef = FOUR_CHAR_CODE('fsrf') typeFileURL = FOUR_CHAR_CODE('furl') typeKeyword = FOUR_CHAR_CODE('keyw') typeSectionH = FOUR_CHAR_CODE('sect') typeWildCard = FOUR_CHAR_CODE('****') typeApplSignature = FOUR_CHAR_CODE('sign') typeQDRectangle = FOUR_CHAR_CODE('qdrt') typeFixed = FOUR_CHAR_CODE('fixd') typeProcessSerialNumber = FOUR_CHAR_CODE('psn ') typeApplicationURL = FOUR_CHAR_CODE('aprl') typeNull = FOUR_CHAR_CODE('null') typeSessionID = FOUR_CHAR_CODE('ssid') typeTargetID = FOUR_CHAR_CODE('targ') typeDispatcherID = FOUR_CHAR_CODE('dspt') keyTransactionIDAttr = FOUR_CHAR_CODE('tran') keyReturnIDAttr = FOUR_CHAR_CODE('rtid') keyEventClassAttr = FOUR_CHAR_CODE('evcl') keyEventIDAttr = FOUR_CHAR_CODE('evid') keyAddressAttr = FOUR_CHAR_CODE('addr') keyOptionalKeywordAttr = FOUR_CHAR_CODE('optk') keyTimeoutAttr = FOUR_CHAR_CODE('timo') keyInteractLevelAttr = FOUR_CHAR_CODE('inte') keyEventSourceAttr = FOUR_CHAR_CODE('esrc') keyMissedKeywordAttr = FOUR_CHAR_CODE('miss') keyOriginalAddressAttr = FOUR_CHAR_CODE('from') keyAcceptTimeoutAttr = FOUR_CHAR_CODE('actm') kAEDescListFactorNone = 0 kAEDescListFactorType = 4 kAEDescListFactorTypeAndSize = 8 kAutoGenerateReturnID = -1 kAnyTransactionID = 0 kAEDataArray = 0 kAEPackedArray = 1 kAEDescArray = 3 kAEKeyDescArray = 4 kAEHandleArray = 2 kAENormalPriority = 0x00000000 kAEHighPriority = 0x00000001 kAENoReply = 0x00000001 kAEQueueReply = 0x00000002 kAEWaitReply = 0x00000003 kAEDontReconnect = 0x00000080 kAEWantReceipt = 0x00000200 kAENeverInteract = 0x00000010 kAECanInteract = 0x00000020 kAEAlwaysInteract = 0x00000030 kAECanSwitchLayer = 0x00000040 kAEDontRecord = 0x00001000 kAEDontExecute = 0x00002000 kAEProcessNonReplyEvents = 0x00008000 kAEDefaultTimeout = -1 kNoTimeOut = -2 kAEInteractWithSelf = 0 kAEInteractWithLocal = 1 kAEInteractWithAll = 2 kAEDoNotIgnoreHandler = 0x00000000 kAEIgnoreAppPhacHandler = 0x00000001 kAEIgnoreAppEventHandler = 0x00000002 kAEIgnoreSysPhacHandler = 0x00000004 kAEIgnoreSysEventHandler = 0x00000008 kAEIngoreBuiltInEventHandler = 0x00000010 # kAEDontDisposeOnResume = (long)0x80000000 kAENoDispatch = 0 # kAEUseStandardDispatch = (long)0xFFFFFFFF keyDirectObject = FOUR_CHAR_CODE('----') keyErrorNumber = FOUR_CHAR_CODE('errn') keyErrorString = FOUR_CHAR_CODE('errs') keyProcessSerialNumber = FOUR_CHAR_CODE('psn ') keyPreDispatch = FOUR_CHAR_CODE('phac') keySelectProc = FOUR_CHAR_CODE('selh') keyAERecorderCount = FOUR_CHAR_CODE('recr') keyAEVersion = FOUR_CHAR_CODE('vers') kCoreEventClass = FOUR_CHAR_CODE('aevt') kAEOpenApplication = FOUR_CHAR_CODE('oapp') kAEOpenDocuments = FOUR_CHAR_CODE('odoc') kAEPrintDocuments = FOUR_CHAR_CODE('pdoc') kAEQuitApplication = FOUR_CHAR_CODE('quit') kAEAnswer = FOUR_CHAR_CODE('ansr') kAEApplicationDied = FOUR_CHAR_CODE('obit') kAEShowPreferences = FOUR_CHAR_CODE('pref') kAEStartRecording = FOUR_CHAR_CODE('reca') kAEStopRecording = FOUR_CHAR_CODE('recc') kAENotifyStartRecording = FOUR_CHAR_CODE('rec1') kAENotifyStopRecording = FOUR_CHAR_CODE('rec0') kAENotifyRecording = FOUR_CHAR_CODE('recr') kAEUnknownSource = 0 kAEDirectCall = 1 kAESameProcess = 2 kAELocalProcess = 3 kAERemoteProcess = 4 cAEList = FOUR_CHAR_CODE('list') cApplication = FOUR_CHAR_CODE('capp') cArc = FOUR_CHAR_CODE('carc') cBoolean = FOUR_CHAR_CODE('bool') cCell = FOUR_CHAR_CODE('ccel') cChar = FOUR_CHAR_CODE('cha ') cColorTable = FOUR_CHAR_CODE('clrt') cColumn = FOUR_CHAR_CODE('ccol') cDocument = FOUR_CHAR_CODE('docu') cDrawingArea = FOUR_CHAR_CODE('cdrw') cEnumeration = FOUR_CHAR_CODE('enum') cFile = FOUR_CHAR_CODE('file') cFixed = FOUR_CHAR_CODE('fixd') cFixedPoint = FOUR_CHAR_CODE('fpnt') cFixedRectangle = FOUR_CHAR_CODE('frct') cGraphicLine = FOUR_CHAR_CODE('glin') cGraphicObject = FOUR_CHAR_CODE('cgob') cGraphicShape = FOUR_CHAR_CODE('cgsh') cGraphicText = FOUR_CHAR_CODE('cgtx') cGroupedGraphic = FOUR_CHAR_CODE('cpic') cInsertionLoc = FOUR_CHAR_CODE('insl') cInsertionPoint = FOUR_CHAR_CODE('cins') cIntlText = FOUR_CHAR_CODE('itxt') cIntlWritingCode = FOUR_CHAR_CODE('intl') cItem = FOUR_CHAR_CODE('citm') cLine = FOUR_CHAR_CODE('clin') cLongDateTime = FOUR_CHAR_CODE('ldt ') cLongFixed = FOUR_CHAR_CODE('lfxd') cLongFixedPoint = FOUR_CHAR_CODE('lfpt') cLongFixedRectangle = FOUR_CHAR_CODE('lfrc') cLongInteger = FOUR_CHAR_CODE('long') cLongPoint = FOUR_CHAR_CODE('lpnt') cLongRectangle = FOUR_CHAR_CODE('lrct') cMachineLoc = FOUR_CHAR_CODE('mLoc') cMenu = FOUR_CHAR_CODE('cmnu') cMenuItem = FOUR_CHAR_CODE('cmen') cObject = FOUR_CHAR_CODE('cobj') cObjectSpecifier = FOUR_CHAR_CODE('obj ') cOpenableObject = FOUR_CHAR_CODE('coob') cOval = FOUR_CHAR_CODE('covl') cParagraph = FOUR_CHAR_CODE('cpar') cPICT = FOUR_CHAR_CODE('PICT') cPixel = FOUR_CHAR_CODE('cpxl') cPixelMap = FOUR_CHAR_CODE('cpix') cPolygon = FOUR_CHAR_CODE('cpgn') cProperty = FOUR_CHAR_CODE('prop') cQDPoint = FOUR_CHAR_CODE('QDpt') cQDRectangle = FOUR_CHAR_CODE('qdrt') cRectangle = FOUR_CHAR_CODE('crec') cRGBColor = FOUR_CHAR_CODE('cRGB') cRotation = FOUR_CHAR_CODE('trot') cRoundedRectangle = FOUR_CHAR_CODE('crrc') cRow = FOUR_CHAR_CODE('crow') cSelection = FOUR_CHAR_CODE('csel') cShortInteger = FOUR_CHAR_CODE('shor') cTable = FOUR_CHAR_CODE('ctbl') cText = FOUR_CHAR_CODE('ctxt') cTextFlow = FOUR_CHAR_CODE('cflo') cTextStyles = FOUR_CHAR_CODE('tsty') cType = FOUR_CHAR_CODE('type') cVersion = FOUR_CHAR_CODE('vers') cWindow = FOUR_CHAR_CODE('cwin') cWord = FOUR_CHAR_CODE('cwor') enumArrows = FOUR_CHAR_CODE('arro') enumJustification = FOUR_CHAR_CODE('just') enumKeyForm = FOUR_CHAR_CODE('kfrm') enumPosition = FOUR_CHAR_CODE('posi') enumProtection = FOUR_CHAR_CODE('prtn') enumQuality = FOUR_CHAR_CODE('qual') enumSaveOptions = FOUR_CHAR_CODE('savo') enumStyle = FOUR_CHAR_CODE('styl') enumTransferMode = FOUR_CHAR_CODE('tran') formUniqueID = FOUR_CHAR_CODE('ID ') kAEAbout = FOUR_CHAR_CODE('abou') kAEAfter = FOUR_CHAR_CODE('afte') kAEAliasSelection = FOUR_CHAR_CODE('sali') kAEAllCaps = FOUR_CHAR_CODE('alcp') kAEArrowAtEnd = FOUR_CHAR_CODE('aren') kAEArrowAtStart = FOUR_CHAR_CODE('arst') kAEArrowBothEnds = FOUR_CHAR_CODE('arbo') kAEAsk = FOUR_CHAR_CODE('ask ') kAEBefore = FOUR_CHAR_CODE('befo') kAEBeginning = FOUR_CHAR_CODE('bgng') kAEBeginsWith = FOUR_CHAR_CODE('bgwt') kAEBeginTransaction = FOUR_CHAR_CODE('begi') kAEBold = FOUR_CHAR_CODE('bold') kAECaseSensEquals = FOUR_CHAR_CODE('cseq') kAECentered = FOUR_CHAR_CODE('cent') kAEChangeView = FOUR_CHAR_CODE('view') kAEClone = FOUR_CHAR_CODE('clon') kAEClose = FOUR_CHAR_CODE('clos') kAECondensed = FOUR_CHAR_CODE('cond') kAEContains = FOUR_CHAR_CODE('cont') kAECopy = FOUR_CHAR_CODE('copy') kAECoreSuite = FOUR_CHAR_CODE('core') kAECountElements = FOUR_CHAR_CODE('cnte') kAECreateElement = FOUR_CHAR_CODE('crel') kAECreatePublisher = FOUR_CHAR_CODE('cpub') kAECut = FOUR_CHAR_CODE('cut ') kAEDelete = FOUR_CHAR_CODE('delo') kAEDoObjectsExist = FOUR_CHAR_CODE('doex') kAEDoScript = FOUR_CHAR_CODE('dosc') kAEDrag = FOUR_CHAR_CODE('drag') kAEDuplicateSelection = FOUR_CHAR_CODE('sdup') kAEEditGraphic = FOUR_CHAR_CODE('edit') kAEEmptyTrash = FOUR_CHAR_CODE('empt') kAEEnd = FOUR_CHAR_CODE('end ') kAEEndsWith = FOUR_CHAR_CODE('ends') kAEEndTransaction = FOUR_CHAR_CODE('endt') kAEEquals = FOUR_CHAR_CODE('= ') kAEExpanded = FOUR_CHAR_CODE('pexp') kAEFast = FOUR_CHAR_CODE('fast') kAEFinderEvents = FOUR_CHAR_CODE('FNDR') kAEFormulaProtect = FOUR_CHAR_CODE('fpro') kAEFullyJustified = FOUR_CHAR_CODE('full') kAEGetClassInfo = FOUR_CHAR_CODE('qobj') kAEGetData = FOUR_CHAR_CODE('getd') kAEGetDataSize = FOUR_CHAR_CODE('dsiz') kAEGetEventInfo = FOUR_CHAR_CODE('gtei') kAEGetInfoSelection = FOUR_CHAR_CODE('sinf') kAEGetPrivilegeSelection = FOUR_CHAR_CODE('sprv') kAEGetSuiteInfo = FOUR_CHAR_CODE('gtsi') kAEGreaterThan = FOUR_CHAR_CODE('> ') kAEGreaterThanEquals = FOUR_CHAR_CODE('>= ') kAEGrow = FOUR_CHAR_CODE('grow') kAEHidden = FOUR_CHAR_CODE('hidn') kAEHiQuality = FOUR_CHAR_CODE('hiqu') kAEImageGraphic = FOUR_CHAR_CODE('imgr') kAEIsUniform = FOUR_CHAR_CODE('isun') kAEItalic = FOUR_CHAR_CODE('ital') kAELeftJustified = FOUR_CHAR_CODE('left') kAELessThan = FOUR_CHAR_CODE('< ') kAELessThanEquals = FOUR_CHAR_CODE('<= ') kAELowercase = FOUR_CHAR_CODE('lowc') kAEMakeObjectsVisible = FOUR_CHAR_CODE('mvis') kAEMiscStandards = FOUR_CHAR_CODE('misc') kAEModifiable = FOUR_CHAR_CODE('modf') kAEMove = FOUR_CHAR_CODE('move') kAENo = FOUR_CHAR_CODE('no ') kAENoArrow = FOUR_CHAR_CODE('arno') kAENonmodifiable = FOUR_CHAR_CODE('nmod') kAEOpen = FOUR_CHAR_CODE('odoc') kAEOpenSelection = FOUR_CHAR_CODE('sope') kAEOutline = FOUR_CHAR_CODE('outl') kAEPageSetup = FOUR_CHAR_CODE('pgsu') kAEPaste = FOUR_CHAR_CODE('past') kAEPlain = FOUR_CHAR_CODE('plan') kAEPrint = FOUR_CHAR_CODE('pdoc') kAEPrintSelection = FOUR_CHAR_CODE('spri') kAEPrintWindow = FOUR_CHAR_CODE('pwin') kAEPutAwaySelection = FOUR_CHAR_CODE('sput') kAEQDAddOver = FOUR_CHAR_CODE('addo') kAEQDAddPin = FOUR_CHAR_CODE('addp') kAEQDAdMax = FOUR_CHAR_CODE('admx') kAEQDAdMin = FOUR_CHAR_CODE('admn') kAEQDBic = FOUR_CHAR_CODE('bic ') kAEQDBlend = FOUR_CHAR_CODE('blnd') kAEQDCopy = FOUR_CHAR_CODE('cpy ') kAEQDNotBic = FOUR_CHAR_CODE('nbic') kAEQDNotCopy = FOUR_CHAR_CODE('ncpy') kAEQDNotOr = FOUR_CHAR_CODE('ntor') kAEQDNotXor = FOUR_CHAR_CODE('nxor') kAEQDOr = FOUR_CHAR_CODE('or ') kAEQDSubOver = FOUR_CHAR_CODE('subo') kAEQDSubPin = FOUR_CHAR_CODE('subp') kAEQDSupplementalSuite = FOUR_CHAR_CODE('qdsp') kAEQDXor = FOUR_CHAR_CODE('xor ') kAEQuickdrawSuite = FOUR_CHAR_CODE('qdrw') kAEQuitAll = FOUR_CHAR_CODE('quia') kAERedo = FOUR_CHAR_CODE('redo') kAERegular = FOUR_CHAR_CODE('regl') kAEReopenApplication = FOUR_CHAR_CODE('rapp') kAEReplace = FOUR_CHAR_CODE('rplc') kAERequiredSuite = FOUR_CHAR_CODE('reqd') kAERestart = FOUR_CHAR_CODE('rest') kAERevealSelection = FOUR_CHAR_CODE('srev') kAERevert = FOUR_CHAR_CODE('rvrt') kAERightJustified = FOUR_CHAR_CODE('rght') kAESave = FOUR_CHAR_CODE('save') kAESelect = FOUR_CHAR_CODE('slct') kAESetData = FOUR_CHAR_CODE('setd') kAESetPosition = FOUR_CHAR_CODE('posn') kAEShadow = FOUR_CHAR_CODE('shad') kAEShowClipboard = FOUR_CHAR_CODE('shcl') kAEShutDown = FOUR_CHAR_CODE('shut') kAESleep = FOUR_CHAR_CODE('slep') kAESmallCaps = FOUR_CHAR_CODE('smcp') kAESpecialClassProperties = FOUR_CHAR_CODE('c@#!') kAEStrikethrough = FOUR_CHAR_CODE('strk') kAESubscript = FOUR_CHAR_CODE('sbsc') kAESuperscript = FOUR_CHAR_CODE('spsc') kAETableSuite = FOUR_CHAR_CODE('tbls') kAETextSuite = FOUR_CHAR_CODE('TEXT') kAETransactionTerminated = FOUR_CHAR_CODE('ttrm') kAEUnderline = FOUR_CHAR_CODE('undl') kAEUndo = FOUR_CHAR_CODE('undo') kAEWholeWordEquals = FOUR_CHAR_CODE('wweq') kAEYes = FOUR_CHAR_CODE('yes ') kAEZoom = FOUR_CHAR_CODE('zoom') kAEMouseClass = FOUR_CHAR_CODE('mous') kAEDown = FOUR_CHAR_CODE('down') kAEUp = FOUR_CHAR_CODE('up ') kAEMoved = FOUR_CHAR_CODE('move') kAEStoppedMoving = FOUR_CHAR_CODE('stop') kAEWindowClass = FOUR_CHAR_CODE('wind') kAEUpdate = FOUR_CHAR_CODE('updt') kAEActivate = FOUR_CHAR_CODE('actv') kAEDeactivate = FOUR_CHAR_CODE('dact') kAECommandClass = FOUR_CHAR_CODE('cmnd') kAEKeyClass = FOUR_CHAR_CODE('keyc') kAERawKey = FOUR_CHAR_CODE('rkey') kAEVirtualKey = FOUR_CHAR_CODE('keyc') kAENavigationKey = FOUR_CHAR_CODE('nave') kAEAutoDown = FOUR_CHAR_CODE('auto') kAEApplicationClass = FOUR_CHAR_CODE('appl') kAESuspend = FOUR_CHAR_CODE('susp') kAEResume = FOUR_CHAR_CODE('rsme') kAEDiskEvent = FOUR_CHAR_CODE('disk') kAENullEvent = FOUR_CHAR_CODE('null') kAEWakeUpEvent = FOUR_CHAR_CODE('wake') kAEScrapEvent = FOUR_CHAR_CODE('scrp') kAEHighLevel = FOUR_CHAR_CODE('high') keyAEAngle = FOUR_CHAR_CODE('kang') keyAEArcAngle = FOUR_CHAR_CODE('parc') keyAEBaseAddr = FOUR_CHAR_CODE('badd') keyAEBestType = FOUR_CHAR_CODE('pbst') keyAEBgndColor = FOUR_CHAR_CODE('kbcl') keyAEBgndPattern = FOUR_CHAR_CODE('kbpt') keyAEBounds = FOUR_CHAR_CODE('pbnd') keyAECellList = FOUR_CHAR_CODE('kclt') keyAEClassID = FOUR_CHAR_CODE('clID') keyAEColor = FOUR_CHAR_CODE('colr') keyAEColorTable = FOUR_CHAR_CODE('cltb') keyAECurveHeight = FOUR_CHAR_CODE('kchd') keyAECurveWidth = FOUR_CHAR_CODE('kcwd') keyAEDashStyle = FOUR_CHAR_CODE('pdst') keyAEData = FOUR_CHAR_CODE('data') keyAEDefaultType = FOUR_CHAR_CODE('deft') keyAEDefinitionRect = FOUR_CHAR_CODE('pdrt') keyAEDescType = FOUR_CHAR_CODE('dstp') keyAEDestination = FOUR_CHAR_CODE('dest') keyAEDoAntiAlias = FOUR_CHAR_CODE('anta') keyAEDoDithered = FOUR_CHAR_CODE('gdit') keyAEDoRotate = FOUR_CHAR_CODE('kdrt') keyAEDoScale = FOUR_CHAR_CODE('ksca') keyAEDoTranslate = FOUR_CHAR_CODE('ktra') keyAEEditionFileLoc = FOUR_CHAR_CODE('eloc') keyAEElements = FOUR_CHAR_CODE('elms') keyAEEndPoint = FOUR_CHAR_CODE('pend') keyAEEventClass = FOUR_CHAR_CODE('evcl') keyAEEventID = FOUR_CHAR_CODE('evti') keyAEFile = FOUR_CHAR_CODE('kfil') keyAEFileType = FOUR_CHAR_CODE('fltp') keyAEFillColor = FOUR_CHAR_CODE('flcl') keyAEFillPattern = FOUR_CHAR_CODE('flpt') keyAEFlipHorizontal = FOUR_CHAR_CODE('kfho') keyAEFlipVertical = FOUR_CHAR_CODE('kfvt') keyAEFont = FOUR_CHAR_CODE('font') keyAEFormula = FOUR_CHAR_CODE('pfor') keyAEGraphicObjects = FOUR_CHAR_CODE('gobs') keyAEID = FOUR_CHAR_CODE('ID ') keyAEImageQuality = FOUR_CHAR_CODE('gqua') keyAEInsertHere = FOUR_CHAR_CODE('insh') keyAEKeyForms = FOUR_CHAR_CODE('keyf') keyAEKeyword = FOUR_CHAR_CODE('kywd') keyAELevel = FOUR_CHAR_CODE('levl') keyAELineArrow = FOUR_CHAR_CODE('arro') keyAEName = FOUR_CHAR_CODE('pnam') keyAENewElementLoc = FOUR_CHAR_CODE('pnel') keyAEObject = FOUR_CHAR_CODE('kobj') keyAEObjectClass = FOUR_CHAR_CODE('kocl') keyAEOffStyles = FOUR_CHAR_CODE('ofst') keyAEOnStyles = FOUR_CHAR_CODE('onst') keyAEParameters = FOUR_CHAR_CODE('prms') keyAEParamFlags = FOUR_CHAR_CODE('pmfg') keyAEPenColor = FOUR_CHAR_CODE('ppcl') keyAEPenPattern = FOUR_CHAR_CODE('pppa') keyAEPenWidth = FOUR_CHAR_CODE('ppwd') keyAEPixelDepth = FOUR_CHAR_CODE('pdpt') keyAEPixMapMinus = FOUR_CHAR_CODE('kpmm') keyAEPMTable = FOUR_CHAR_CODE('kpmt') keyAEPointList = FOUR_CHAR_CODE('ptlt') keyAEPointSize = FOUR_CHAR_CODE('ptsz') keyAEPosition = FOUR_CHAR_CODE('kpos') keyAEPropData = FOUR_CHAR_CODE('prdt') keyAEProperties = FOUR_CHAR_CODE('qpro') keyAEProperty = FOUR_CHAR_CODE('kprp') keyAEPropFlags = FOUR_CHAR_CODE('prfg') keyAEPropID = FOUR_CHAR_CODE('prop') keyAEProtection = FOUR_CHAR_CODE('ppro') keyAERenderAs = FOUR_CHAR_CODE('kren') keyAERequestedType = FOUR_CHAR_CODE('rtyp') keyAEResult = FOUR_CHAR_CODE('----') keyAEResultInfo = FOUR_CHAR_CODE('rsin') keyAERotation = FOUR_CHAR_CODE('prot') keyAERotPoint = FOUR_CHAR_CODE('krtp') keyAERowList = FOUR_CHAR_CODE('krls') keyAESaveOptions = FOUR_CHAR_CODE('savo') keyAEScale = FOUR_CHAR_CODE('pscl') keyAEScriptTag = FOUR_CHAR_CODE('psct') keyAEShowWhere = FOUR_CHAR_CODE('show') keyAEStartAngle = FOUR_CHAR_CODE('pang') keyAEStartPoint = FOUR_CHAR_CODE('pstp') keyAEStyles = FOUR_CHAR_CODE('ksty') keyAESuiteID = FOUR_CHAR_CODE('suit') keyAEText = FOUR_CHAR_CODE('ktxt') keyAETextColor = FOUR_CHAR_CODE('ptxc') keyAETextFont = FOUR_CHAR_CODE('ptxf') keyAETextPointSize = FOUR_CHAR_CODE('ptps') keyAETextStyles = FOUR_CHAR_CODE('txst') keyAETextLineHeight = FOUR_CHAR_CODE('ktlh') keyAETextLineAscent = FOUR_CHAR_CODE('ktas') keyAETheText = FOUR_CHAR_CODE('thtx') keyAETransferMode = FOUR_CHAR_CODE('pptm') keyAETranslation = FOUR_CHAR_CODE('ptrs') keyAETryAsStructGraf = FOUR_CHAR_CODE('toog') keyAEUniformStyles = FOUR_CHAR_CODE('ustl') keyAEUpdateOn = FOUR_CHAR_CODE('pupd') keyAEUserTerm = FOUR_CHAR_CODE('utrm') keyAEWindow = FOUR_CHAR_CODE('wndw') keyAEWritingCode = FOUR_CHAR_CODE('wrcd') keyMiscellaneous = FOUR_CHAR_CODE('fmsc') keySelection = FOUR_CHAR_CODE('fsel') keyWindow = FOUR_CHAR_CODE('kwnd') keyWhen = FOUR_CHAR_CODE('when') keyWhere = FOUR_CHAR_CODE('wher') keyModifiers = FOUR_CHAR_CODE('mods') keyKey = FOUR_CHAR_CODE('key ') keyKeyCode = FOUR_CHAR_CODE('code') keyKeyboard = FOUR_CHAR_CODE('keyb') keyDriveNumber = FOUR_CHAR_CODE('drv#') keyErrorCode = FOUR_CHAR_CODE('err#') keyHighLevelClass = FOUR_CHAR_CODE('hcls') keyHighLevelID = FOUR_CHAR_CODE('hid ') pArcAngle = FOUR_CHAR_CODE('parc') pBackgroundColor = FOUR_CHAR_CODE('pbcl') pBackgroundPattern = FOUR_CHAR_CODE('pbpt') pBestType = FOUR_CHAR_CODE('pbst') pBounds = FOUR_CHAR_CODE('pbnd') pClass = FOUR_CHAR_CODE('pcls') pClipboard = FOUR_CHAR_CODE('pcli') pColor = FOUR_CHAR_CODE('colr') pColorTable = FOUR_CHAR_CODE('cltb') pContents = FOUR_CHAR_CODE('pcnt') pCornerCurveHeight = FOUR_CHAR_CODE('pchd') pCornerCurveWidth = FOUR_CHAR_CODE('pcwd') pDashStyle = FOUR_CHAR_CODE('pdst') pDefaultType = FOUR_CHAR_CODE('deft') pDefinitionRect = FOUR_CHAR_CODE('pdrt') pEnabled = FOUR_CHAR_CODE('enbl') pEndPoint = FOUR_CHAR_CODE('pend') pFillColor = FOUR_CHAR_CODE('flcl') pFillPattern = FOUR_CHAR_CODE('flpt') pFont = FOUR_CHAR_CODE('font') pFormula = FOUR_CHAR_CODE('pfor') pGraphicObjects = FOUR_CHAR_CODE('gobs') pHasCloseBox = FOUR_CHAR_CODE('hclb') pHasTitleBar = FOUR_CHAR_CODE('ptit') pID = FOUR_CHAR_CODE('ID ') pIndex = FOUR_CHAR_CODE('pidx') pInsertionLoc = FOUR_CHAR_CODE('pins') pIsFloating = FOUR_CHAR_CODE('isfl') pIsFrontProcess = FOUR_CHAR_CODE('pisf') pIsModal = FOUR_CHAR_CODE('pmod') pIsModified = FOUR_CHAR_CODE('imod') pIsResizable = FOUR_CHAR_CODE('prsz') pIsStationeryPad = FOUR_CHAR_CODE('pspd') pIsZoomable = FOUR_CHAR_CODE('iszm') pIsZoomed = FOUR_CHAR_CODE('pzum') pItemNumber = FOUR_CHAR_CODE('itmn') pJustification = FOUR_CHAR_CODE('pjst') pLineArrow = FOUR_CHAR_CODE('arro') pMenuID = FOUR_CHAR_CODE('mnid') pName = FOUR_CHAR_CODE('pnam') pNewElementLoc = FOUR_CHAR_CODE('pnel') pPenColor = FOUR_CHAR_CODE('ppcl') pPenPattern = FOUR_CHAR_CODE('pppa') pPenWidth = FOUR_CHAR_CODE('ppwd') pPixelDepth = FOUR_CHAR_CODE('pdpt') pPointList = FOUR_CHAR_CODE('ptlt') pPointSize = FOUR_CHAR_CODE('ptsz') pProtection = FOUR_CHAR_CODE('ppro') pRotation = FOUR_CHAR_CODE('prot') pScale = FOUR_CHAR_CODE('pscl') pScript = FOUR_CHAR_CODE('scpt') pScriptTag = FOUR_CHAR_CODE('psct') pSelected = FOUR_CHAR_CODE('selc') pSelection = FOUR_CHAR_CODE('sele') pStartAngle = FOUR_CHAR_CODE('pang') pStartPoint = FOUR_CHAR_CODE('pstp') pTextColor = FOUR_CHAR_CODE('ptxc') pTextFont = FOUR_CHAR_CODE('ptxf') pTextItemDelimiters = FOUR_CHAR_CODE('txdl') pTextPointSize = FOUR_CHAR_CODE('ptps') pTextStyles = FOUR_CHAR_CODE('txst') pTransferMode = FOUR_CHAR_CODE('pptm') pTranslation = FOUR_CHAR_CODE('ptrs') pUniformStyles = FOUR_CHAR_CODE('ustl') pUpdateOn = FOUR_CHAR_CODE('pupd') pUserSelection = FOUR_CHAR_CODE('pusl') pVersion = FOUR_CHAR_CODE('vers') pVisible = FOUR_CHAR_CODE('pvis') typeAEText = FOUR_CHAR_CODE('tTXT') typeArc = FOUR_CHAR_CODE('carc') typeBest = FOUR_CHAR_CODE('best') typeCell = FOUR_CHAR_CODE('ccel') typeClassInfo = FOUR_CHAR_CODE('gcli') typeColorTable = FOUR_CHAR_CODE('clrt') typeColumn = FOUR_CHAR_CODE('ccol') typeDashStyle = FOUR_CHAR_CODE('tdas') typeData = FOUR_CHAR_CODE('tdta') typeDrawingArea = FOUR_CHAR_CODE('cdrw') typeElemInfo = FOUR_CHAR_CODE('elin') typeEnumeration = FOUR_CHAR_CODE('enum') typeEPS = FOUR_CHAR_CODE('EPS ') typeEventInfo = FOUR_CHAR_CODE('evin') typeFinderWindow = FOUR_CHAR_CODE('fwin') typeFixedPoint = FOUR_CHAR_CODE('fpnt') typeFixedRectangle = FOUR_CHAR_CODE('frct') typeGraphicLine = FOUR_CHAR_CODE('glin') typeGraphicText = FOUR_CHAR_CODE('cgtx') typeGroupedGraphic = FOUR_CHAR_CODE('cpic') typeInsertionLoc = FOUR_CHAR_CODE('insl') typeIntlText = FOUR_CHAR_CODE('itxt') typeIntlWritingCode = FOUR_CHAR_CODE('intl') typeLongDateTime = FOUR_CHAR_CODE('ldt ') typeLongFixed = FOUR_CHAR_CODE('lfxd') typeLongFixedPoint = FOUR_CHAR_CODE('lfpt') typeLongFixedRectangle = FOUR_CHAR_CODE('lfrc') typeLongPoint = FOUR_CHAR_CODE('lpnt') typeLongRectangle = FOUR_CHAR_CODE('lrct') typeMachineLoc = FOUR_CHAR_CODE('mLoc') typeOval = FOUR_CHAR_CODE('covl') typeParamInfo = FOUR_CHAR_CODE('pmin') typePict = FOUR_CHAR_CODE('PICT') typePixelMap = FOUR_CHAR_CODE('cpix') typePixMapMinus = FOUR_CHAR_CODE('tpmm') typePolygon = FOUR_CHAR_CODE('cpgn') typePropInfo = FOUR_CHAR_CODE('pinf') typePtr = FOUR_CHAR_CODE('ptr ') typeQDPoint = FOUR_CHAR_CODE('QDpt') typeQDRegion = FOUR_CHAR_CODE('Qrgn') typeRectangle = FOUR_CHAR_CODE('crec') typeRGB16 = FOUR_CHAR_CODE('tr16') typeRGB96 = FOUR_CHAR_CODE('tr96') typeRGBColor = FOUR_CHAR_CODE('cRGB') typeRotation = FOUR_CHAR_CODE('trot') typeRoundedRectangle = FOUR_CHAR_CODE('crrc') typeRow = FOUR_CHAR_CODE('crow') typeScrapStyles = FOUR_CHAR_CODE('styl') typeScript = FOUR_CHAR_CODE('scpt') typeStyledText = FOUR_CHAR_CODE('STXT') typeSuiteInfo = FOUR_CHAR_CODE('suin') typeTable = FOUR_CHAR_CODE('ctbl') typeTextStyles = FOUR_CHAR_CODE('tsty') typeTIFF = FOUR_CHAR_CODE('TIFF') typeVersion = FOUR_CHAR_CODE('vers') kAEMenuClass = FOUR_CHAR_CODE('menu') kAEMenuSelect = FOUR_CHAR_CODE('mhit') kAEMouseDown = FOUR_CHAR_CODE('mdwn') kAEMouseDownInBack = FOUR_CHAR_CODE('mdbk') kAEKeyDown = FOUR_CHAR_CODE('kdwn') kAEResized = FOUR_CHAR_CODE('rsiz') kAEPromise = FOUR_CHAR_CODE('prom') keyMenuID = FOUR_CHAR_CODE('mid ') keyMenuItem = FOUR_CHAR_CODE('mitm') keyCloseAllWindows = FOUR_CHAR_CODE('caw ') keyOriginalBounds = FOUR_CHAR_CODE('obnd') keyNewBounds = FOUR_CHAR_CODE('nbnd') keyLocalWhere = FOUR_CHAR_CODE('lwhr') typeHIMenu = FOUR_CHAR_CODE('mobj') typeHIWindow = FOUR_CHAR_CODE('wobj') kBySmallIcon = 0 kByIconView = 1 kByNameView = 2 kByDateView = 3 kBySizeView = 4 kByKindView = 5 kByCommentView = 6 kByLabelView = 7 kByVersionView = 8 kAEInfo = 11 kAEMain = 0 kAESharing = 13 kAEZoomIn = 7 kAEZoomOut = 8 kTextServiceClass = FOUR_CHAR_CODE('tsvc') kUpdateActiveInputArea = FOUR_CHAR_CODE('updt') kShowHideInputWindow = FOUR_CHAR_CODE('shiw') kPos2Offset = FOUR_CHAR_CODE('p2st') kOffset2Pos = FOUR_CHAR_CODE('st2p') kUnicodeNotFromInputMethod = FOUR_CHAR_CODE('unim') kGetSelectedText = FOUR_CHAR_CODE('gtxt') keyAETSMDocumentRefcon = FOUR_CHAR_CODE('refc') keyAEServerInstance = FOUR_CHAR_CODE('srvi') keyAETheData = FOUR_CHAR_CODE('kdat') keyAEFixLength = FOUR_CHAR_CODE('fixl') keyAEUpdateRange = FOUR_CHAR_CODE('udng') keyAECurrentPoint = FOUR_CHAR_CODE('cpos') keyAEBufferSize = FOUR_CHAR_CODE('buff') keyAEMoveView = FOUR_CHAR_CODE('mvvw') keyAENextBody = FOUR_CHAR_CODE('nxbd') keyAETSMScriptTag = FOUR_CHAR_CODE('sclg') keyAETSMTextFont = FOUR_CHAR_CODE('ktxf') keyAETSMTextFMFont = FOUR_CHAR_CODE('ktxm') keyAETSMTextPointSize = FOUR_CHAR_CODE('ktps') keyAETSMEventRecord = FOUR_CHAR_CODE('tevt') keyAETSMEventRef = FOUR_CHAR_CODE('tevr') keyAETextServiceEncoding = FOUR_CHAR_CODE('tsen') keyAETextServiceMacEncoding = FOUR_CHAR_CODE('tmen') typeTextRange = FOUR_CHAR_CODE('txrn') typeComponentInstance = FOUR_CHAR_CODE('cmpi') typeOffsetArray = FOUR_CHAR_CODE('ofay') typeTextRangeArray = FOUR_CHAR_CODE('tray') typeLowLevelEventRecord = FOUR_CHAR_CODE('evtr') typeEventRef = FOUR_CHAR_CODE('evrf') typeText = typeChar kTSMOutsideOfBody = 1 kTSMInsideOfBody = 2 kTSMInsideOfActiveInputArea = 3 kNextBody = 1 kPreviousBody = 2 kCaretPosition = 1 kRawText = 2 kSelectedRawText = 3 kConvertedText = 4 kSelectedConvertedText = 5 kBlockFillText = 6 kOutlineText = 7 kSelectedText = 8 keyAEHiliteRange = FOUR_CHAR_CODE('hrng') keyAEPinRange = FOUR_CHAR_CODE('pnrg') keyAEClauseOffsets = FOUR_CHAR_CODE('clau') keyAEOffset = FOUR_CHAR_CODE('ofst') keyAEPoint = FOUR_CHAR_CODE('gpos') keyAELeftSide = FOUR_CHAR_CODE('klef') keyAERegionClass = FOUR_CHAR_CODE('rgnc') keyAEDragging = FOUR_CHAR_CODE('bool') keyAELeadingEdge = keyAELeftSide typeUnicodeText = FOUR_CHAR_CODE('utxt') typeStyledUnicodeText = FOUR_CHAR_CODE('sutx') typeEncodedString = FOUR_CHAR_CODE('encs') typeCString = FOUR_CHAR_CODE('cstr') typePString = FOUR_CHAR_CODE('pstr') typeMeters = FOUR_CHAR_CODE('metr') typeInches = FOUR_CHAR_CODE('inch') typeFeet = FOUR_CHAR_CODE('feet') typeYards = FOUR_CHAR_CODE('yard') typeMiles = FOUR_CHAR_CODE('mile') typeKilometers = FOUR_CHAR_CODE('kmtr') typeCentimeters = FOUR_CHAR_CODE('cmtr') typeSquareMeters = FOUR_CHAR_CODE('sqrm') typeSquareFeet = FOUR_CHAR_CODE('sqft') typeSquareYards = FOUR_CHAR_CODE('sqyd') typeSquareMiles = FOUR_CHAR_CODE('sqmi') typeSquareKilometers = FOUR_CHAR_CODE('sqkm') typeLiters = FOUR_CHAR_CODE('litr') typeQuarts = FOUR_CHAR_CODE('qrts') typeGallons = FOUR_CHAR_CODE('galn') typeCubicMeters = FOUR_CHAR_CODE('cmet') typeCubicFeet = FOUR_CHAR_CODE('cfet') typeCubicInches = FOUR_CHAR_CODE('cuin') typeCubicCentimeter = FOUR_CHAR_CODE('ccmt') typeCubicYards = FOUR_CHAR_CODE('cyrd') typeKilograms = FOUR_CHAR_CODE('kgrm') typeGrams = FOUR_CHAR_CODE('gram') typeOunces = FOUR_CHAR_CODE('ozs ') typePounds = FOUR_CHAR_CODE('lbs ') typeDegreesC = FOUR_CHAR_CODE('degc') typeDegreesF = FOUR_CHAR_CODE('degf') typeDegreesK = FOUR_CHAR_CODE('degk') kFAServerApp = FOUR_CHAR_CODE('ssrv') kDoFolderActionEvent = FOUR_CHAR_CODE('fola') kFolderActionCode = FOUR_CHAR_CODE('actn') kFolderOpenedEvent = FOUR_CHAR_CODE('fopn') kFolderClosedEvent = FOUR_CHAR_CODE('fclo') kFolderWindowMovedEvent = FOUR_CHAR_CODE('fsiz') kFolderItemsAddedEvent = FOUR_CHAR_CODE('fget') kFolderItemsRemovedEvent = FOUR_CHAR_CODE('flos') kItemList = FOUR_CHAR_CODE('flst') kNewSizeParameter = FOUR_CHAR_CODE('fnsz') kFASuiteCode = FOUR_CHAR_CODE('faco') kFAAttachCommand = FOUR_CHAR_CODE('atfa') kFARemoveCommand = FOUR_CHAR_CODE('rmfa') kFAEditCommand = FOUR_CHAR_CODE('edfa') kFAFileParam = FOUR_CHAR_CODE('faal') kFAIndexParam = FOUR_CHAR_CODE('indx') kAEInternetSuite = FOUR_CHAR_CODE('gurl') kAEISWebStarSuite = FOUR_CHAR_CODE('WWW\xbd') kAEISGetURL = FOUR_CHAR_CODE('gurl') KAEISHandleCGI = FOUR_CHAR_CODE('sdoc') cURL = FOUR_CHAR_CODE('url ') cInternetAddress = FOUR_CHAR_CODE('IPAD') cHTML = FOUR_CHAR_CODE('html') cFTPItem = FOUR_CHAR_CODE('ftp ') kAEISHTTPSearchArgs = FOUR_CHAR_CODE('kfor') kAEISPostArgs = FOUR_CHAR_CODE('post') kAEISMethod = FOUR_CHAR_CODE('meth') kAEISClientAddress = FOUR_CHAR_CODE('addr') kAEISUserName = FOUR_CHAR_CODE('user') kAEISPassword = FOUR_CHAR_CODE('pass') kAEISFromUser = FOUR_CHAR_CODE('frmu') kAEISServerName = FOUR_CHAR_CODE('svnm') kAEISServerPort = FOUR_CHAR_CODE('svpt') kAEISScriptName = FOUR_CHAR_CODE('scnm') kAEISContentType = FOUR_CHAR_CODE('ctyp') kAEISReferrer = FOUR_CHAR_CODE('refr') kAEISUserAgent = FOUR_CHAR_CODE('Agnt') kAEISAction = FOUR_CHAR_CODE('Kact') kAEISActionPath = FOUR_CHAR_CODE('Kapt') kAEISClientIP = FOUR_CHAR_CODE('Kcip') kAEISFullRequest = FOUR_CHAR_CODE('Kfrq') pScheme = FOUR_CHAR_CODE('pusc') pHost = FOUR_CHAR_CODE('HOST') pPath = FOUR_CHAR_CODE('FTPc') pUserName = FOUR_CHAR_CODE('RAun') pUserPassword = FOUR_CHAR_CODE('RApw') pDNSForm = FOUR_CHAR_CODE('pDNS') pURL = FOUR_CHAR_CODE('pURL') pTextEncoding = FOUR_CHAR_CODE('ptxe') pFTPKind = FOUR_CHAR_CODE('kind') eScheme = FOUR_CHAR_CODE('esch') eurlHTTP = FOUR_CHAR_CODE('http') eurlHTTPS = FOUR_CHAR_CODE('htps') eurlFTP = FOUR_CHAR_CODE('ftp ') eurlMail = FOUR_CHAR_CODE('mail') eurlFile = FOUR_CHAR_CODE('file') eurlGopher = FOUR_CHAR_CODE('gphr') eurlTelnet = FOUR_CHAR_CODE('tlnt') eurlNews = FOUR_CHAR_CODE('news') eurlSNews = FOUR_CHAR_CODE('snws') eurlNNTP = FOUR_CHAR_CODE('nntp') eurlMessage = FOUR_CHAR_CODE('mess') eurlMailbox = FOUR_CHAR_CODE('mbox') eurlMulti = FOUR_CHAR_CODE('mult') eurlLaunch = FOUR_CHAR_CODE('laun') eurlAFP = FOUR_CHAR_CODE('afp ') eurlAT = FOUR_CHAR_CODE('at ') eurlEPPC = FOUR_CHAR_CODE('eppc') eurlRTSP = FOUR_CHAR_CODE('rtsp') eurlIMAP = FOUR_CHAR_CODE('imap') eurlNFS = FOUR_CHAR_CODE('unfs') eurlPOP = FOUR_CHAR_CODE('upop') eurlLDAP = FOUR_CHAR_CODE('uldp') eurlUnknown = FOUR_CHAR_CODE('url?') kConnSuite = FOUR_CHAR_CODE('macc') cDevSpec = FOUR_CHAR_CODE('cdev') cAddressSpec = FOUR_CHAR_CODE('cadr') cADBAddress = FOUR_CHAR_CODE('cadb') cAppleTalkAddress = FOUR_CHAR_CODE('cat ') cBusAddress = FOUR_CHAR_CODE('cbus') cEthernetAddress = FOUR_CHAR_CODE('cen ') cFireWireAddress = FOUR_CHAR_CODE('cfw ') cIPAddress = FOUR_CHAR_CODE('cip ') cLocalTalkAddress = FOUR_CHAR_CODE('clt ') cSCSIAddress = FOUR_CHAR_CODE('cscs') cTokenRingAddress = FOUR_CHAR_CODE('ctok') cUSBAddress = FOUR_CHAR_CODE('cusb') pDeviceType = FOUR_CHAR_CODE('pdvt') pDeviceAddress = FOUR_CHAR_CODE('pdva') pConduit = FOUR_CHAR_CODE('pcon') pProtocol = FOUR_CHAR_CODE('pprt') pATMachine = FOUR_CHAR_CODE('patm') pATZone = FOUR_CHAR_CODE('patz') pATType = FOUR_CHAR_CODE('patt') pDottedDecimal = FOUR_CHAR_CODE('pipd') pDNS = FOUR_CHAR_CODE('pdns') pPort = FOUR_CHAR_CODE('ppor') pNetwork = FOUR_CHAR_CODE('pnet') pNode = FOUR_CHAR_CODE('pnod') pSocket = FOUR_CHAR_CODE('psoc') pSCSIBus = FOUR_CHAR_CODE('pscb') pSCSILUN = FOUR_CHAR_CODE('pslu') eDeviceType = FOUR_CHAR_CODE('edvt') eAddressSpec = FOUR_CHAR_CODE('eads') eConduit = FOUR_CHAR_CODE('econ') eProtocol = FOUR_CHAR_CODE('epro') eADB = FOUR_CHAR_CODE('eadb') eAnalogAudio = FOUR_CHAR_CODE('epau') eAppleTalk = FOUR_CHAR_CODE('epat') eAudioLineIn = FOUR_CHAR_CODE('ecai') eAudioLineOut = FOUR_CHAR_CODE('ecal') eAudioOut = FOUR_CHAR_CODE('ecao') eBus = FOUR_CHAR_CODE('ebus') eCDROM = FOUR_CHAR_CODE('ecd ') eCommSlot = FOUR_CHAR_CODE('eccm') eDigitalAudio = FOUR_CHAR_CODE('epda') eDisplay = FOUR_CHAR_CODE('edds') eDVD = FOUR_CHAR_CODE('edvd') eEthernet = FOUR_CHAR_CODE('ecen') eFireWire = FOUR_CHAR_CODE('ecfw') eFloppy = FOUR_CHAR_CODE('efd ') eHD = FOUR_CHAR_CODE('ehd ') eInfrared = FOUR_CHAR_CODE('ecir') eIP = FOUR_CHAR_CODE('epip') eIrDA = FOUR_CHAR_CODE('epir') eIRTalk = FOUR_CHAR_CODE('epit') eKeyboard = FOUR_CHAR_CODE('ekbd') eLCD = FOUR_CHAR_CODE('edlc') eLocalTalk = FOUR_CHAR_CODE('eclt') eMacIP = FOUR_CHAR_CODE('epmi') eMacVideo = FOUR_CHAR_CODE('epmv') eMicrophone = FOUR_CHAR_CODE('ecmi') eModemPort = FOUR_CHAR_CODE('ecmp') eModemPrinterPort = FOUR_CHAR_CODE('empp') eModem = FOUR_CHAR_CODE('edmm') eMonitorOut = FOUR_CHAR_CODE('ecmn') eMouse = FOUR_CHAR_CODE('emou') eNuBusCard = FOUR_CHAR_CODE('ednb') eNuBus = FOUR_CHAR_CODE('enub') ePCcard = FOUR_CHAR_CODE('ecpc') ePCIbus = FOUR_CHAR_CODE('ecpi') ePCIcard = FOUR_CHAR_CODE('edpi') ePDSslot = FOUR_CHAR_CODE('ecpd') ePDScard = FOUR_CHAR_CODE('epds') ePointingDevice = FOUR_CHAR_CODE('edpd') ePostScript = FOUR_CHAR_CODE('epps') ePPP = FOUR_CHAR_CODE('eppp') ePrinterPort = FOUR_CHAR_CODE('ecpp') ePrinter = FOUR_CHAR_CODE('edpr') eSvideo = FOUR_CHAR_CODE('epsv') eSCSI = FOUR_CHAR_CODE('ecsc') eSerial = FOUR_CHAR_CODE('epsr') eSpeakers = FOUR_CHAR_CODE('edsp') eStorageDevice = FOUR_CHAR_CODE('edst') eSVGA = FOUR_CHAR_CODE('epsg') eTokenRing = FOUR_CHAR_CODE('etok') eTrackball = FOUR_CHAR_CODE('etrk') eTrackpad = FOUR_CHAR_CODE('edtp') eUSB = FOUR_CHAR_CODE('ecus') eVideoIn = FOUR_CHAR_CODE('ecvi') eVideoMonitor = FOUR_CHAR_CODE('edvm') eVideoOut = FOUR_CHAR_CODE('ecvo') cKeystroke = FOUR_CHAR_CODE('kprs') pKeystrokeKey = FOUR_CHAR_CODE('kMsg') pModifiers = FOUR_CHAR_CODE('kMod') pKeyKind = FOUR_CHAR_CODE('kknd') eModifiers = FOUR_CHAR_CODE('eMds') eOptionDown = FOUR_CHAR_CODE('Kopt') eCommandDown = FOUR_CHAR_CODE('Kcmd') eControlDown = FOUR_CHAR_CODE('Kctl') eShiftDown = FOUR_CHAR_CODE('Ksft') eCapsLockDown = FOUR_CHAR_CODE('Kclk') eKeyKind = FOUR_CHAR_CODE('ekst') eEscapeKey = 0x6B733500 eDeleteKey = 0x6B733300 eTabKey = 0x6B733000 eReturnKey = 0x6B732400 eClearKey = 0x6B734700 eEnterKey = 0x6B734C00 eUpArrowKey = 0x6B737E00 eDownArrowKey = 0x6B737D00 eLeftArrowKey = 0x6B737B00 eRightArrowKey = 0x6B737C00 eHelpKey = 0x6B737200 eHomeKey = 0x6B737300 ePageUpKey = 0x6B737400 ePageDownKey = 0x6B737900 eForwardDelKey = 0x6B737500 eEndKey = 0x6B737700 eF1Key = 0x6B737A00 eF2Key = 0x6B737800 eF3Key = 0x6B736300 eF4Key = 0x6B737600 eF5Key = 0x6B736000 eF6Key = 0x6B736100 eF7Key = 0x6B736200 eF8Key = 0x6B736400 eF9Key = 0x6B736500 eF10Key = 0x6B736D00 eF11Key = 0x6B736700 eF12Key = 0x6B736F00 eF13Key = 0x6B736900 eF14Key = 0x6B736B00 eF15Key = 0x6B737100 kAEAND = FOUR_CHAR_CODE('AND ') kAEOR = FOUR_CHAR_CODE('OR ') kAENOT = FOUR_CHAR_CODE('NOT ') kAEFirst = FOUR_CHAR_CODE('firs') kAELast = FOUR_CHAR_CODE('last') kAEMiddle = FOUR_CHAR_CODE('midd') kAEAny = FOUR_CHAR_CODE('any ') kAEAll = FOUR_CHAR_CODE('all ') kAENext = FOUR_CHAR_CODE('next') kAEPrevious = FOUR_CHAR_CODE('prev') keyAECompOperator = FOUR_CHAR_CODE('relo') keyAELogicalTerms = FOUR_CHAR_CODE('term') keyAELogicalOperator = FOUR_CHAR_CODE('logc') keyAEObject1 = FOUR_CHAR_CODE('obj1') keyAEObject2 = FOUR_CHAR_CODE('obj2') keyAEDesiredClass = FOUR_CHAR_CODE('want') keyAEContainer = FOUR_CHAR_CODE('from') keyAEKeyForm = FOUR_CHAR_CODE('form') keyAEKeyData = FOUR_CHAR_CODE('seld') keyAERangeStart = FOUR_CHAR_CODE('star') keyAERangeStop = FOUR_CHAR_CODE('stop') keyDisposeTokenProc = FOUR_CHAR_CODE('xtok') keyAECompareProc = FOUR_CHAR_CODE('cmpr') keyAECountProc = FOUR_CHAR_CODE('cont') keyAEMarkTokenProc = FOUR_CHAR_CODE('mkid') keyAEMarkProc = FOUR_CHAR_CODE('mark') keyAEAdjustMarksProc = FOUR_CHAR_CODE('adjm') keyAEGetErrDescProc = FOUR_CHAR_CODE('indc') formAbsolutePosition = FOUR_CHAR_CODE('indx') formRelativePosition = FOUR_CHAR_CODE('rele') formTest = FOUR_CHAR_CODE('test') formRange = FOUR_CHAR_CODE('rang') formPropertyID = FOUR_CHAR_CODE('prop') formName = FOUR_CHAR_CODE('name') typeObjectSpecifier = FOUR_CHAR_CODE('obj ') typeObjectBeingExamined = FOUR_CHAR_CODE('exmn') typeCurrentContainer = FOUR_CHAR_CODE('ccnt') typeToken = FOUR_CHAR_CODE('toke') typeRelativeDescriptor = FOUR_CHAR_CODE('rel ') typeAbsoluteOrdinal = FOUR_CHAR_CODE('abso') typeIndexDescriptor = FOUR_CHAR_CODE('inde') typeRangeDescriptor = FOUR_CHAR_CODE('rang') typeLogicalDescriptor = FOUR_CHAR_CODE('logi') typeCompDescriptor = FOUR_CHAR_CODE('cmpd') typeOSLTokenList = FOUR_CHAR_CODE('ostl') kAEIDoMinimum = 0x0000 kAEIDoWhose = 0x0001 kAEIDoMarking = 0x0004 kAEPassSubDescs = 0x0008 kAEResolveNestedLists = 0x0010 kAEHandleSimpleRanges = 0x0020 kAEUseRelativeIterators = 0x0040 typeWhoseDescriptor = FOUR_CHAR_CODE('whos') formWhose = FOUR_CHAR_CODE('whos') typeWhoseRange = FOUR_CHAR_CODE('wrng') keyAEWhoseRangeStart = FOUR_CHAR_CODE('wstr') keyAEWhoseRangeStop = FOUR_CHAR_CODE('wstp') keyAEIndex = FOUR_CHAR_CODE('kidx') keyAETest = FOUR_CHAR_CODE('ktst') --- NEW FILE: AppleHelp.py --- # Generated from 'AppleHelp.h' kAHInternalErr = -10790 kAHInternetConfigPrefErr = -10791 kAHTOCTypeUser = 0 kAHTOCTypeDeveloper = 1 --- NEW FILE: CF.py --- from _CF import * --- NEW FILE: CG.py --- from _CG import * --- NEW FILE: CarbonEvents.py --- # Generated from 'CarbonEvents.h' def FOUR_CHAR_CODE(x): return x def FOUR_CHAR_CODE(x): return x false = 0 true = 1 keyAEEventClass = FOUR_CHAR_CODE('evcl') keyAEEventID = FOUR_CHAR_CODE('evti') eventAlreadyPostedErr = -9860 eventTargetBusyErr = -9861 eventClassInvalidErr = -9862 eventClassIncorrectErr = -9864 eventHandlerAlreadyInstalledErr = -9866 eventInternalErr = -9868 eventKindIncorrectErr = -9869 eventParameterNotFoundErr = -9870 eventNotHandledErr = -9874 eventLoopTimedOutErr = -9875 eventLoopQuitErr = -9876 eventNotInQueueErr = -9877 eventHotKeyExistsErr = -9878 eventHotKeyInvalidErr = -9879 kEventPriorityLow = 0 kEventPriorityStandard = 1 kEventPriorityHigh = 2 kEventLeaveInQueue = false kEventRemoveFromQueue = true kTrackMouseLocationOptionDontConsumeMouseUp = (1 << 0) kMouseTrackingMouseDown = 1 kMouseTrackingMouseUp = 2 kMouseTrackingMouseExited = 3 kMouseTrackingMouseEntered = 4 kMouseTrackingMouseDragged = 5 kMouseTrackingKeyModifiersChanged = 6 kMouseTrackingUserCancelled = 7 kMouseTrackingTimedOut = 8 kMouseTrackingMouseMoved = 9 kEventAttributeNone = 0 kEventAttributeUserEvent = (1 << 0) kEventClassMouse = FOUR_CHAR_CODE('mous') kEventClassKeyboard = FOUR_CHAR_CODE('keyb') kEventClassTextInput = FOUR_CHAR_CODE('text') kEventClassApplication = FOUR_CHAR_CODE('appl') kEventClassAppleEvent = FOUR_CHAR_CODE('eppc') kEventClassMenu = FOUR_CHAR_CODE('menu') kEventClassWindow = FOUR_CHAR_CODE('wind') kEventClassControl = FOUR_CHAR_CODE('cntl') kEventClassCommand = FOUR_CHAR_CODE('cmds') kEventClassTablet = FOUR_CHAR_CODE('tblt') kEventClassVolume = FOUR_CHAR_CODE('vol ') kEventClassAppearance = FOUR_CHAR_CODE('appm') kEventClassService = FOUR_CHAR_CODE('serv') kEventMouseDown = 1 kEventMouseUp = 2 kEventMouseMoved = 5 kEventMouseDragged = 6 kEventMouseWheelMoved = 10 kEventMouseButtonPrimary = 1 kEventMouseButtonSecondary = 2 kEventMouseButtonTertiary = 3 kEventMouseWheelAxisX = 0 kEventMouseWheelAxisY = 1 kEventTextInputUpdateActiveInputArea = 1 kEventTextInputUnicodeForKeyEvent = 2 kEventTextInputOffsetToPos = 3 kEventTextInputPosToOffset = 4 kEventTextInputShowHideBottomWindow = 5 kEventTextInputGetSelectedText = 6 kEventRawKeyDown = 1 kEventRawKeyRepeat = 2 kEventRawKeyUp = 3 kEventRawKeyModifiersChanged = 4 kEventHotKeyPressed = 5 kEventHotKeyReleased = 6 kEventKeyModifierNumLockBit = 16 kEventKeyModifierFnBit = 17 kEventKeyModifierNumLockMask = 1L << kEventKeyModifierNumLockBit kEventKeyModifierFnMask = 1L << kEventKeyModifierFnBit kEventAppActivated = 1 kEventAppDeactivated = 2 kEventAppQuit = 3 kEventAppLaunchNotification = 4 kEventAppLaunched = 5 kEventAppTerminated = 6 kEventAppFrontSwitched = 7 kEventAppGetDockTileMenu = 20 kEventAppleEvent = 1 kEventWindowUpdate = 1 kEventWindowDrawContent = 2 kEventWindowActivated = 5 kEventWindowDeactivated = 6 kEventWindowGetClickActivation = 7 kEventWindowShowing = 22 kEventWindowHiding = 23 kEventWindowShown = 24 kEventWindowHidden = 25 kEventWindowCollapsing = 86 kEventWindowCollapsed = 67 kEventWindowExpanding = 87 kEventWindowExpanded = 70 kEventWindowZoomed = 76 kEventWindowBoundsChanging = 26 kEventWindowBoundsChanged = 27 kEventWindowResizeStarted = 28 kEventWindowResizeCompleted = 29 kEventWindowDragStarted = 30 kEventWindowDragCompleted = 31 kEventWindowClosed = 73 kWindowBoundsChangeUserDrag = (1 << 0) kWindowBoundsChangeUserResize = (1 << 1) kWindowBoundsChangeSizeChanged = (1 << 2) kWindowBoundsChangeOriginChanged = (1 << 3) kWindowBoundsChangeZoom = (1 << 4) kEventWindowClickDragRgn = 32 kEventWindowClickResizeRgn = 33 kEventWindowClickCollapseRgn = 34 kEventWindowClickCloseRgn = 35 kEventWindowClickZoomRgn = 36 kEventWindowClickContentRgn = 37 kEventWindowClickProxyIconRgn = 38 kEventWindowClickToolbarButtonRgn = 41 kEventWindowClickStructureRgn = 42 kEventWindowCursorChange = 40 kEventWindowCollapse = 66 kEventWindowCollapseAll = 68 kEventWindowExpand = 69 kEventWindowExpandAll = 71 kEventWindowClose = 72 kEventWindowCloseAll = 74 kEventWindowZoom = 75 kEventWindowZoomAll = 77 kEventWindowContextualMenuSelect = 78 kEventWindowPathSelect = 79 kEventWindowGetIdealSize = 80 kEventWindowGetMinimumSize = 81 kEventWindowGetMaximumSize = 82 kEventWindowConstrain = 83 kEventWindowHandleContentClick = 85 kEventWindowProxyBeginDrag = 128 kEventWindowProxyEndDrag = 129 kEventWindowToolbarSwitchMode = 150 kDockChangedUser = 1 kDockChangedOrientation = 2 kDockChangedAutohide = 3 kDockChangedDisplay = 4 kDockChangedItems = 5 kDockChangedUnknown = 6 kEventWindowFocusAcquired = 200 kEventWindowFocusRelinquish = 201 kEventWindowDrawFrame = 1000 kEventWindowDrawPart = 1001 kEventWindowGetRegion = 1002 kEventWindowHitTest = 1003 kEventWindowInit = 1004 kEventWindowDispose = 1005 kEventWindowDragHilite = 1006 kEventWindowModified = 1007 kEventWindowSetupProxyDragImage = 1008 kEventWindowStateChanged = 1009 kEventWindowMeasureTitle = 1010 kEventWindowDrawGrowBox = 1011 kEventWindowGetGrowImageRegion = 1012 kEventWindowPaint = 1013 kEventMenuBeginTracking = 1 kEventMenuEndTracking = 2 kEventMenuChangeTrackingMode = 3 kEventMenuOpening = 4 kEventMenuClosed = 5 kEventMenuTargetItem = 6 kEventMenuMatchKey = 7 kEventMenuEnableItems = 8 kEventMenuPopulate = 9 kEventMenuMeasureItemWidth = 100 kEventMenuMeasureItemHeight = 101 kEventMenuDrawItem = 102 kEventMenuDrawItemContent = 103 kEventMenuDispose = 1001 kMenuContextMenuBar = 1 << 0 kMenuContextPullDown = 1 << 8 kMenuContextPopUp = 1 << 9 kMenuContextSubmenu = 1 << 10 kMenuContextMenuBarTracking = 1 << 16 kMenuContextPopUpTracking = 1 << 17 kMenuContextKeyMatching = 1 << 18 kMenuContextMenuEnabling = 1 << 19 kMenuContextCommandIDSearch = 1 << 20 kEventProcessCommand = 1 kEventCommandProcess = 1 kEventCommandUpdateStatus = 2 kHICommandOK = FOUR_CHAR_CODE('ok ') kHICommandCancel = FOUR_CHAR_CODE('not!') kHICommandQuit = FOUR_CHAR_CODE('quit') kHICommandUndo = FOUR_CHAR_CODE('undo') kHICommandRedo = FOUR_CHAR_CODE('redo') kHICommandCut = FOUR_CHAR_CODE('cut ') kHICommandCopy = FOUR_CHAR_CODE('copy') kHICommandPaste = FOUR_CHAR_CODE('past') kHICommandClear = FOUR_CHAR_CODE('clea') kHICommandSelectAll = FOUR_CHAR_CODE('sall') kHICommandHide = FOUR_CHAR_CODE('hide') kHICommandHideOthers = FOUR_CHAR_CODE('hido') kHICommandShowAll = FOUR_CHAR_CODE('shal') kHICommandPreferences = FOUR_CHAR_CODE('pref') kHICommandZoomWindow = FOUR_CHAR_CODE('zoom') kHICommandMinimizeWindow = FOUR_CHAR_CODE('mini') kHICommandMinimizeAll = FOUR_CHAR_CODE('mina') kHICommandMaximizeWindow = FOUR_CHAR_CODE('maxi') kHICommandMaximizeAll = FOUR_CHAR_CODE('maxa') kHICommandArrangeInFront = FOUR_CHAR_CODE('frnt') kHICommandBringAllToFront = FOUR_CHAR_CODE('bfrt') kHICommandWindowListSeparator = FOUR_CHAR_CODE('wldv') kHICommandWindowListTerminator = FOUR_CHAR_CODE('wlst') kHICommandSelectWindow = FOUR_CHAR_CODE('swin') kHICommandAbout = FOUR_CHAR_CODE('abou') kHICommandNew = FOUR_CHAR_CODE('new ') kHICommandOpen = FOUR_CHAR_CODE('open') kHICommandClose = FOUR_CHAR_CODE('clos') kHICommandSave = FOUR_CHAR_CODE('save') kHICommandSaveAs = FOUR_CHAR_CODE('svas') kHICommandRevert = FOUR_CHAR_CODE('rvrt') kHICommandPrint = FOUR_CHAR_CODE('prnt') kHICommandPageSetup = FOUR_CHAR_CODE('page') kHICommandAppHelp = FOUR_CHAR_CODE('ahlp') kHICommandFromMenu = (1L << 0) kHICommandFromControl = (1L << 1) kHICommandFromWindow = (1L << 2) kEventControlInitialize = 1000 kEventControlDispose = 1001 kEventControlGetOptimalBounds = 1003 kEventControlDefInitialize = kEventControlInitialize kEventControlDefDispose = kEventControlDispose kEventControlHit = 1 kEventControlSimulateHit = 2 kEventControlHitTest = 3 kEventControlDraw = 4 kEventControlApplyBackground = 5 kEventControlApplyTextColor = 6 kEventControlSetFocusPart = 7 kEventControlGetFocusPart = 8 kEventControlActivate = 9 kEventControlDeactivate = 10 kEventControlSetCursor = 11 kEventControlContextualMenuClick = 12 kEventControlClick = 13 kEventControlTrack = 51 kEventControlGetScrollToHereStartPoint = 52 kEventControlGetIndicatorDragConstraint = 53 kEventControlIndicatorMoved = 54 kEventControlGhostingFinished = 55 kEventControlGetActionProcPart = 56 kEventControlGetPartRegion = 101 kEventControlGetPartBounds = 102 kEventControlSetData = 103 kEventControlGetData = 104 kEventControlValueFieldChanged = 151 kEventControlAddedSubControl = 152 kEventControlRemovingSubControl = 153 kEventControlBoundsChanged = 154 kEventControlOwningWindowChanged = 159 kEventControlArbitraryMessage = 201 kControlBoundsChangeSizeChanged = (1 << 2) kControlBoundsChangePositionChanged = (1 << 3) kEventTabletPoint = 1 kEventTabletProximity = 2 kEventTabletPointer = 1 kEventVolumeMounted = 1 kEventVolumeUnmounted = 2 typeFSVolumeRefNum = FOUR_CHAR_CODE('voln') kEventAppearanceScrollBarVariantChanged = 1 kEventServiceCopy = 1 kEventServicePaste = 2 kEventServiceGetTypes = 3 kEventServicePerform = 4 kEventParamDirectObject = FOUR_CHAR_CODE('----') kEventParamPostTarget = FOUR_CHAR_CODE('ptrg') typeEventTargetRef = FOUR_CHAR_CODE('etrg') kEventParamWindowRef = FOUR_CHAR_CODE('wind') kEventParamGrafPort = FOUR_CHAR_CODE('graf') kEventParamDragRef = FOUR_CHAR_CODE('drag') kEventParamMenuRef = FOUR_CHAR_CODE('menu') kEventParamEventRef = FOUR_CHAR_CODE('evnt') kEventParamControlRef = FOUR_CHAR_CODE('ctrl') kEventParamRgnHandle = FOUR_CHAR_CODE('rgnh') kEventParamEnabled = FOUR_CHAR_CODE('enab') kEventParamDimensions = FOUR_CHAR_CODE('dims') kEventParamAvailableBounds = FOUR_CHAR_CODE('avlb') kEventParamAEEventID = keyAEEventID kEventParamAEEventClass = keyAEEventClass kEventParamCGContextRef = FOUR_CHAR_CODE('cntx') kEventParamDeviceDepth = FOUR_CHAR_CODE('devd') kEventParamDeviceColor = FOUR_CHAR_CODE('devc') typeWindowRef = FOUR_CHAR_CODE('wind') typeGrafPtr = FOUR_CHAR_CODE('graf') typeGWorldPtr = FOUR_CHAR_CODE('gwld') typeDragRef = FOUR_CHAR_CODE('drag') typeMenuRef = FOUR_CHAR_CODE('menu') typeControlRef = FOUR_CHAR_CODE('ctrl') typeCollection = FOUR_CHAR_CODE('cltn') typeQDRgnHandle = FOUR_CHAR_CODE('rgnh') typeOSStatus = FOUR_CHAR_CODE('osst') typeCFStringRef = FOUR_CHAR_CODE('cfst') typeCFIndex = FOUR_CHAR_CODE('cfix') typeCFTypeRef = FOUR_CHAR_CODE('cfty') typeCGContextRef = FOUR_CHAR_CODE('cntx') typeHIPoint = FOUR_CHAR_CODE('hipt') typeHISize = FOUR_CHAR_CODE('hisz') typeHIRect = FOUR_CHAR_CODE('hirc') kEventParamMouseLocation = FOUR_CHAR_CODE('mloc') kEventParamMouseButton = FOUR_CHAR_CODE('mbtn') kEventParamClickCount = FOUR_CHAR_CODE('ccnt') kEventParamMouseWheelAxis = FOUR_CHAR_CODE('mwax') kEventParamMouseWheelDelta = FOUR_CHAR_CODE('mwdl') kEventParamMouseDelta = FOUR_CHAR_CODE('mdta') kEventParamMouseChord = FOUR_CHAR_CODE('chor') kEventParamTabletEventType = FOUR_CHAR_CODE('tblt') typeMouseButton = FOUR_CHAR_CODE('mbtn') typeMouseWheelAxis = FOUR_CHAR_CODE('mwax') kEventParamKeyCode = FOUR_CHAR_CODE('kcod') kEventParamKeyMacCharCodes = FOUR_CHAR_CODE('kchr') kEventParamKeyModifiers = FOUR_CHAR_CODE('kmod') kEventParamKeyUnicodes = FOUR_CHAR_CODE('kuni') kEventParamKeyboardType = FOUR_CHAR_CODE('kbdt') typeEventHotKeyID = FOUR_CHAR_CODE('hkid') kEventParamTextInputSendRefCon = FOUR_CHAR_CODE('tsrc') kEventParamTextInputSendComponentInstance = FOUR_CHAR_CODE('tsci') kEventParamTextInputSendSLRec = FOUR_CHAR_CODE('tssl') kEventParamTextInputReplySLRec = FOUR_CHAR_CODE('trsl') kEventParamTextInputSendText = FOUR_CHAR_CODE('tstx') kEventParamTextInputReplyText = FOUR_CHAR_CODE('trtx') kEventParamTextInputSendUpdateRng = FOUR_CHAR_CODE('tsup') kEventParamTextInputSendHiliteRng = FOUR_CHAR_CODE('tshi') kEventParamTextInputSendClauseRng = FOUR_CHAR_CODE('tscl') kEventParamTextInputSendPinRng = FOUR_CHAR_CODE('tspn') kEventParamTextInputSendFixLen = FOUR_CHAR_CODE('tsfx') kEventParamTextInputSendLeadingEdge = FOUR_CHAR_CODE('tsle') kEventParamTextInputReplyLeadingEdge = FOUR_CHAR_CODE('trle') kEventParamTextInputSendTextOffset = FOUR_CHAR_CODE('tsto') kEventParamTextInputReplyTextOffset = FOUR_CHAR_CODE('trto') kEventParamTextInputReplyRegionClass = FOUR_CHAR_CODE('trrg') kEventParamTextInputSendCurrentPoint = FOUR_CHAR_CODE('tscp') kEventParamTextInputSendDraggingMode = FOUR_CHAR_CODE('tsdm') kEventParamTextInputReplyPoint = FOUR_CHAR_CODE('trpt') kEventParamTextInputReplyFont = FOUR_CHAR_CODE('trft') kEventParamTextInputReplyFMFont = FOUR_CHAR_CODE('trfm') kEventParamTextInputReplyPointSize = FOUR_CHAR_CODE('trpz') kEventParamTextInputReplyLineHeight = FOUR_CHAR_CODE('trlh') kEventParamTextInputReplyLineAscent = FOUR_CHAR_CODE('trla') kEventParamTextInputReplyTextAngle = FOUR_CHAR_CODE('trta') kEventParamTextInputSendShowHide = FOUR_CHAR_CODE('tssh') kEventParamTextInputReplyShowHide = FOUR_CHAR_CODE('trsh') kEventParamTextInputSendKeyboardEvent = FOUR_CHAR_CODE('tske') kEventParamTextInputSendTextServiceEncoding = FOUR_CHAR_CODE('tsse') kEventParamTextInputSendTextServiceMacEncoding = FOUR_CHAR_CODE('tssm') kEventParamHICommand = FOUR_CHAR_CODE('hcmd') typeHICommand = FOUR_CHAR_CODE('hcmd') kEventParamWindowFeatures = FOUR_CHAR_CODE('wftr') kEventParamWindowDefPart = FOUR_CHAR_CODE('wdpc') kEventParamCurrentBounds = FOUR_CHAR_CODE('crct') kEventParamOriginalBounds = FOUR_CHAR_CODE('orct') kEventParamPreviousBounds = FOUR_CHAR_CODE('prct') kEventParamClickActivation = FOUR_CHAR_CODE('clac') kEventParamWindowRegionCode = FOUR_CHAR_CODE('wshp') kEventParamWindowDragHiliteFlag = FOUR_CHAR_CODE('wdhf') kEventParamWindowModifiedFlag = FOUR_CHAR_CODE('wmff') kEventParamWindowProxyGWorldPtr = FOUR_CHAR_CODE('wpgw') kEventParamWindowProxyImageRgn = FOUR_CHAR_CODE('wpir') kEventParamWindowProxyOutlineRgn = FOUR_CHAR_CODE('wpor') kEventParamWindowStateChangedFlags = FOUR_CHAR_CODE('wscf') kEventParamWindowTitleFullWidth = FOUR_CHAR_CODE('wtfw') kEventParamWindowTitleTextWidth = FOUR_CHAR_CODE('wttw') kEventParamWindowGrowRect = FOUR_CHAR_CODE('grct') kEventParamAttributes = FOUR_CHAR_CODE('attr') kEventParamDockChangedReason = FOUR_CHAR_CODE('dcrs') kEventParamPreviousDockRect = FOUR_CHAR_CODE('pdrc') kEventParamCurrentDockRect = FOUR_CHAR_CODE('cdrc') typeWindowRegionCode = FOUR_CHAR_CODE('wshp') typeWindowDefPartCode = FOUR_CHAR_CODE('wdpt') typeClickActivationResult = FOUR_CHAR_CODE('clac') kEventParamControlPart = FOUR_CHAR_CODE('cprt') kEventParamInitCollection = FOUR_CHAR_CODE('icol') kEventParamControlMessage = FOUR_CHAR_CODE('cmsg') kEventParamControlParam = FOUR_CHAR_CODE('cprm') kEventParamControlResult = FOUR_CHAR_CODE('crsl') kEventParamControlRegion = FOUR_CHAR_CODE('crgn') kEventParamControlAction = FOUR_CHAR_CODE('caup') kEventParamControlIndicatorDragConstraint = FOUR_CHAR_CODE('cidc') kEventParamControlIndicatorRegion = FOUR_CHAR_CODE('cirn') kEventParamControlIsGhosting = FOUR_CHAR_CODE('cgst') kEventParamControlIndicatorOffset = FOUR_CHAR_CODE('ciof') kEventParamControlClickActivationResult = FOUR_CHAR_CODE('ccar') kEventParamControlSubControl = FOUR_CHAR_CODE('csub') kEventParamControlOptimalBounds = FOUR_CHAR_CODE('cobn') kEventParamControlOptimalBaselineOffset = FOUR_CHAR_CODE('cobo') kEventParamControlDataTag = FOUR_CHAR_CODE('cdtg') kEventParamControlDataBuffer = FOUR_CHAR_CODE('cdbf') kEventParamControlDataBufferSize = FOUR_CHAR_CODE('cdbs') kEventParamControlDrawDepth = FOUR_CHAR_CODE('cddp') kEventParamControlDrawInColor = FOUR_CHAR_CODE('cdic') kEventParamControlFeatures = FOUR_CHAR_CODE('cftr') kEventParamControlPartBounds = FOUR_CHAR_CODE('cpbd') kEventParamControlOriginalOwningWindow = FOUR_CHAR_CODE('coow') kEventParamControlCurrentOwningWindow = FOUR_CHAR_CODE('ccow') typeControlActionUPP = FOUR_CHAR_CODE('caup') typeIndicatorDragConstraint = FOUR_CHAR_CODE('cidc') typeControlPartCode = FOUR_CHAR_CODE('cprt') kEventParamCurrentMenuTrackingMode = FOUR_CHAR_CODE('cmtm') kEventParamNewMenuTrackingMode = FOUR_CHAR_CODE('nmtm') kEventParamMenuFirstOpen = FOUR_CHAR_CODE('1sto') kEventParamMenuItemIndex = FOUR_CHAR_CODE('item') kEventParamMenuCommand = FOUR_CHAR_CODE('mcmd') kEventParamEnableMenuForKeyEvent = FOUR_CHAR_CODE('fork') kEventParamMenuEventOptions = FOUR_CHAR_CODE('meop') kEventParamMenuContext = FOUR_CHAR_CODE('mctx') kEventParamMenuItemBounds = FOUR_CHAR_CODE('mitb') kEventParamMenuMarkBounds = FOUR_CHAR_CODE('mmkb') kEventParamMenuIconBounds = FOUR_CHAR_CODE('micb') kEventParamMenuTextBounds = FOUR_CHAR_CODE('mtxb') kEventParamMenuTextBaseline = FOUR_CHAR_CODE('mtbl') kEventParamMenuCommandKeyBounds = FOUR_CHAR_CODE('mcmb') kEventParamMenuVirtualTop = FOUR_CHAR_CODE('mvrt') kEventParamMenuVirtualBottom = FOUR_CHAR_CODE('mvrb') kEventParamMenuDrawState = FOUR_CHAR_CODE('mdrs') kEventParamMenuItemType = FOUR_CHAR_CODE('mitp') kEventParamMenuItemWidth = FOUR_CHAR_CODE('mitw') kEventParamMenuItemHeight = FOUR_CHAR_CODE('mith') typeMenuItemIndex = FOUR_CHAR_CODE('midx') typeMenuCommand = FOUR_CHAR_CODE('mcmd') typeMenuTrackingMode = FOUR_CHAR_CODE('mtmd') typeMenuEventOptions = FOUR_CHAR_CODE('meop') typeThemeMenuState = FOUR_CHAR_CODE('tmns') typeThemeMenuItemType = FOUR_CHAR_CODE('tmit') kEventParamProcessID = FOUR_CHAR_CODE('psn ') kEventParamLaunchRefCon = FOUR_CHAR_CODE('lref') kEventParamLaunchErr = FOUR_CHAR_CODE('err ') kEventParamTabletPointRec = FOUR_CHAR_CODE('tbrc') kEventParamTabletProximityRec = FOUR_CHAR_CODE('tbpx') typeTabletPointRec = FOUR_CHAR_CODE('tbrc') typeTabletProximityRec = FOUR_CHAR_CODE('tbpx') kEventParamTabletPointerRec = FOUR_CHAR_CODE('tbrc') typeTabletPointerRec = FOUR_CHAR_CODE('tbrc') kEventParamNewScrollBarVariant = FOUR_CHAR_CODE('nsbv') kEventParamScrapRef = FOUR_CHAR_CODE('scrp') kEventParamServiceCopyTypes = FOUR_CHAR_CODE('svsd') kEventParamServicePasteTypes = FOUR_CHAR_CODE('svpt') kEventParamServiceMessageName = FOUR_CHAR_CODE('svmg') kEventParamServiceUserData = FOUR_CHAR_CODE('svud') typeScrapRef = FOUR_CHAR_CODE('scrp') typeCFMutableArrayRef = FOUR_CHAR_CODE('cfma') # sHandler = NewEventHandlerUPP( x ) kMouseTrackingMousePressed = kMouseTrackingMouseDown kMouseTrackingMouseReleased = kMouseTrackingMouseUp --- NEW FILE: CarbonEvt.py --- from _CarbonEvt import * --- NEW FILE: Cm.py --- from _Cm import * --- NEW FILE: Components.py --- # Generated from 'Components.h' def FOUR_CHAR_CODE(x): return x kAppleManufacturer = FOUR_CHAR_CODE('appl') kComponentResourceType = FOUR_CHAR_CODE('thng') kComponentAliasResourceType = FOUR_CHAR_CODE('thga') kAnyComponentType = 0 kAnyComponentSubType = 0 kAnyComponentManufacturer = 0 kAnyComponentFlagsMask = 0 cmpIsMissing = 1L << 29 cmpWantsRegisterMessage = 1L << 31 kComponentOpenSelect = -1 kComponentCloseSelect = -2 kComponentCanDoSelect = -3 kComponentVersionSelect = -4 kComponentRegisterSelect = -5 kComponentTargetSelect = -6 kComponentUnregisterSelect = -7 kComponentGetMPWorkFunctionSelect = -8 kComponentExecuteWiredActionSelect = -9 kComponentGetPublicResourceSelect = -10 componentDoAutoVersion = (1 << 0) componentWantsUnregister = (1 << 1) componentAutoVersionIncludeFlags = (1 << 2) componentHasMultiplePlatforms = (1 << 3) componentLoadResident = (1 << 4) defaultComponentIdentical = 0 defaultComponentAnyFlags = 1 defaultComponentAnyManufacturer = 2 defaultComponentAnySubType = 4 defaultComponentAnyFlagsAnyManufacturer = (defaultComponentAnyFlags + defaultComponentAnyManufacturer) defaultComponentAnyFlagsAnyManufacturerAnySubType = (defaultComponentAnyFlags + defaultComponentAnyManufacturer + defaultComponentAnySubType) registerComponentGlobal = 1 registerComponentNoDuplicates = 2 registerComponentAfterExisting = 4 registerComponentAliasesOnly = 8 platform68k = 1 platformPowerPC = 2 platformInterpreted = 3 platformWin32 = 4 platformPowerPCNativeEntryPoint = 5 mpWorkFlagDoWork = (1 << 0) mpWorkFlagDoCompletion = (1 << 1) mpWorkFlagCopyWorkBlock = (1 << 2) mpWorkFlagDontBlock = (1 << 3) mpWorkFlagGetProcessorCount = (1 << 4) mpWorkFlagGetIsRunning = (1 << 6) cmpAliasNoFlags = 0 cmpAliasOnlyThisFile = 1 uppComponentFunctionImplementedProcInfo = 0x000002F0 uppGetComponentVersionProcInfo = 0x000000F0 uppComponentSetTargetProcInfo = 0x000003F0 uppCallComponentOpenProcInfo = 0x000003F0 uppCallComponentCloseProcInfo = 0x000003F0 uppCallComponentCanDoProcInfo = 0x000002F0 uppCallComponentVersionProcInfo = 0x000000F0 uppCallComponentRegisterProcInfo = 0x000000F0 uppCallComponentTargetProcInfo = 0x000003F0 uppCallComponentUnregisterProcInfo = 0x000000F0 uppCallComponentGetMPWorkFunctionProcInfo = 0x00000FF0 uppCallComponentGetPublicResourceProcInfo = 0x00003BF0 --- NEW FILE: ControlAccessor.py --- # Accessor functions for control properties from Controls import * import struct # These needn't go through this module, but are here for completeness def SetControlData_Handle(control, part, selector, data): control.SetControlData_Handle(part, selector, data) def GetControlData_Handle(control, part, selector): return control.GetControlData_Handle(part, selector) _accessdict = { kControlPopupButtonMenuHandleTag: (SetControlData_Handle, GetControlData_Handle), } _codingdict = { kControlPushButtonDefaultTag : ("b", None, None), kControlEditTextTextTag: (None, None, None), kControlEditTextPasswordTag: (None, None, None), kControlPopupButtonMenuIDTag: ("h", None, None), kControlListBoxDoubleClickTag: ("b", None, None), } def SetControlData(control, part, selector, data): if _accessdict.has_key(selector): setfunc, getfunc = _accessdict[selector] setfunc(control, part, selector, data) return if not _codingdict.has_key(selector): raise KeyError, ('Unknown control selector', selector) structfmt, coder, decoder = _codingdict[selector] if coder: data = coder(data) if structfmt: data = struct.pack(structfmt, data) control.SetControlData(part, selector, data) def GetControlData(control, part, selector): if _accessdict.has_key(selector): setfunc, getfunc = _accessdict[selector] return getfunc(control, part, selector, data) if not _codingdict.has_key(selector): raise KeyError, ('Unknown control selector', selector) structfmt, coder, decoder = _codingdict[selector] data = control.GetControlData(part, selector) if structfmt: data = struct.unpack(structfmt, data) if decoder: data = decoder(data) if type(data) == type(()) and len(data) == 1: data = data[0] return data --- NEW FILE: Controls.py --- # Generated from 'Controls.h' def FOUR_CHAR_CODE(x): return x from Carbon.TextEdit import * from Carbon.QuickDraw import * from Carbon.Dragconst import * from Carbon.CarbonEvents import * from Carbon.Appearance import * kDataBrowserItemAnyState = -1 kControlBevelButtonCenterPopupGlyphTag = -1 kDataBrowserClientPropertyFlagsMask = 0xFF000000 kControlDefProcType = FOUR_CHAR_CODE('CDEF') kControlTemplateResourceType = FOUR_CHAR_CODE('CNTL') kControlColorTableResourceType = FOUR_CHAR_CODE('cctb') kControlDefProcResourceType = FOUR_CHAR_CODE('CDEF') controlNotifyNothing = FOUR_CHAR_CODE('nada') controlNotifyClick = FOUR_CHAR_CODE('clik') controlNotifyFocus = FOUR_CHAR_CODE('focu') controlNotifyKey = FOUR_CHAR_CODE('key ') kControlCanAutoInvalidate = 1L << 0 staticTextProc = 256 editTextProc = 272 iconProc = 288 userItemProc = 304 pictItemProc = 320 cFrameColor = 0 cBodyColor = 1 cTextColor = 2 cThumbColor = 3 kNumberCtlCTabEntries = 4 kControlNoVariant = 0 kControlUsesOwningWindowsFontVariant = 1 << 3 kControlNoPart = 0 kControlIndicatorPart = 129 kControlDisabledPart = 254 kControlInactivePart = 255 kControlEntireControl = 0 kControlStructureMetaPart = -1 kControlContentMetaPart = -2 kControlFocusNoPart = 0 kControlFocusNextPart = -1 kControlFocusPrevPart = -2 kControlCollectionTagBounds = FOUR_CHAR_CODE('boun') kControlCollectionTagValue = FOUR_CHAR_CODE('valu') kControlCollectionTagMinimum = FOUR_CHAR_CODE('min ') kControlCollectionTagMaximum = FOUR_CHAR_CODE('max ') kControlCollectionTagViewSize = FOUR_CHAR_CODE('view') kControlCollectionTagVisibility = FOUR_CHAR_CODE('visi') kControlCollectionTagRefCon = FOUR_CHAR_CODE('refc') kControlCollectionTagTitle = FOUR_CHAR_CODE('titl') kControlCollectionTagUnicodeTitle = FOUR_CHAR_CODE('uttl') kControlCollectionTagIDSignature = FOUR_CHAR_CODE('idsi') kControlCollectionTagIDID = FOUR_CHAR_CODE('idid') kControlCollectionTagCommand = FOUR_CHAR_CODE('cmd ') kControlCollectionTagVarCode = FOUR_CHAR_CODE('varc') kControlContentTextOnly = 0 kControlNoContent = 0 kControlContentIconSuiteRes = 1 kControlContentCIconRes = 2 kControlContentPictRes = 3 kControlContentICONRes = 4 kControlContentIconSuiteHandle = 129 kControlContentCIconHandle = 130 kControlContentPictHandle = 131 kControlContentIconRef = 132 kControlContentICON = 133 kControlKeyScriptBehaviorAllowAnyScript = FOUR_CHAR_CODE('any ') kControlKeyScriptBehaviorPrefersRoman = FOUR_CHAR_CODE('prmn') kControlKeyScriptBehaviorRequiresRoman = FOUR_CHAR_CODE('rrmn') kControlFontBigSystemFont = -1 kControlFontSmallSystemFont = -2 kControlFontSmallBoldSystemFont = -3 kControlFontViewSystemFont = -4 kControlUseFontMask = 0x0001 kControlUseFaceMask = 0x0002 kControlUseSizeMask = 0x0004 kControlUseForeColorMask = 0x0008 kControlUseBackColorMask = 0x0010 kControlUseModeMask = 0x0020 kControlUseJustMask = 0x0040 kControlUseAllMask = 0x00FF kControlAddFontSizeMask = 0x0100 kControlAddToMetaFontMask = 0x0200 kControlUseThemeFontIDMask = 0x0080 kDoNotActivateAndIgnoreClick = 0 kDoNotActivateAndHandleClick = 1 kActivateAndIgnoreClick = 2 kActivateAndHandleClick = 3 kControlFontStyleTag = FOUR_CHAR_CODE('font') kControlKeyFilterTag = FOUR_CHAR_CODE('fltr') kControlKindTag = FOUR_CHAR_CODE('kind') kControlSizeTag = FOUR_CHAR_CODE('size') kControlSupportsGhosting = 1 << 0 kControlSupportsEmbedding = 1 << 1 kControlSupportsFocus = 1 << 2 kControlWantsIdle = 1 << 3 kControlWantsActivate = 1 << 4 kControlHandlesTracking = 1 << 5 kControlSupportsDataAccess = 1 << 6 kControlHasSpecialBackground = 1 << 7 kControlGetsFocusOnClick = 1 << 8 kControlSupportsCalcBestRect = 1 << 9 kControlSupportsLiveFeedback = 1 << 10 kControlHasRadioBehavior = 1 << 11 kControlSupportsDragAndDrop = 1 << 12 kControlAutoToggles = 1 << 14 kControlSupportsGetRegion = 1 << 17 kControlSupportsFlattening = 1 << 19 kControlSupportsSetCursor = 1 << 20 kControlSupportsContextualMenus = 1 << 21 kControlSupportsClickActivation = 1 << 22 kControlIdlesWithTimer = 1 << 23 drawCntl = 0 testCntl = 1 calcCRgns = 2 initCntl = 3 dispCntl = 4 posCntl = 5 thumbCntl = 6 dragCntl = 7 autoTrack = 8 calcCntlRgn = 10 calcThumbRgn = 11 drawThumbOutline = 12 kControlMsgDrawGhost = 13 kControlMsgCalcBestRect = 14 kControlMsgHandleTracking = 15 kControlMsgFocus = 16 kControlMsgKeyDown = 17 kControlMsgIdle = 18 kControlMsgGetFeatures = 19 kControlMsgSetData = 20 kControlMsgGetData = 21 kControlMsgActivate = 22 kControlMsgSetUpBackground = 23 kControlMsgCalcValueFromPos = 26 kControlMsgTestNewMsgSupport = 27 kControlMsgSubValueChanged = 25 kControlMsgSubControlAdded = 28 kControlMsgSubControlRemoved = 29 kControlMsgApplyTextColor = 30 kControlMsgGetRegion = 31 kControlMsgFlatten = 32 kControlMsgSetCursor = 33 kControlMsgDragEnter = 38 kControlMsgDragLeave = 39 kControlMsgDragWithin = 40 kControlMsgDragReceive = 41 kControlMsgDisplayDebugInfo = 46 kControlMsgContextualMenuClick = 47 kControlMsgGetClickActivation = 48 kControlSizeNormal = 0 kControlSizeSmall = 1 kControlSizeLarge = 2 kControlSizeAuto = 0xFFFF kDrawControlEntireControl = 0 kDrawControlIndicatorOnly = 129 kDragControlEntireControl = 0 kDragControlIndicator = 1 kControlSupportsNewMessages = FOUR_CHAR_CODE(' ok ') kControlKeyFilterBlockKey = 0 kControlKeyFilterPassKey = 1 noConstraint = kNoConstraint hAxisOnly = 1 vAxisOnly = 2 kControlDefProcPtr = 0 kControlDefObjectClass = 1 kControlKindSignatureApple = FOUR_CHAR_CODE('appl') kControlPropertyPersistent = 0x00000001 kDragTrackingEnterControl = 2 kDragTrackingInControl = 3 kDragTrackingLeaveControl = 4 useWFont = kControlUsesOwningWindowsFontVariant inThumb = kControlIndicatorPart kNoHiliteControlPart = kControlNoPart kInIndicatorControlPart = kControlIndicatorPart kReservedControlPart = kControlDisabledPart kControlInactiveControlPart = kControlInactivePart kControlTabListResType = FOUR_CHAR_CODE('tab#') kControlListDescResType = FOUR_CHAR_CODE('ldes') kControlCheckBoxUncheckedValue = 0 kControlCheckBoxCheckedValue = 1 kControlCheckBoxMixedValue = 2 kControlRadioButtonUncheckedValue = 0 kControlRadioButtonCheckedValue = 1 kControlRadioButtonMixedValue = 2 popupFixedWidth = 1 << 0 popupVariableWidth = 1 << 1 popupUseAddResMenu = 1 << 2 popupUseWFont = 1 << 3 popupTitleBold = 1 << 8 popupTitleItalic = 1 << 9 popupTitleUnderline = 1 << 10 popupTitleOutline = 1 << 11 popupTitleShadow = 1 << 12 popupTitleCondense = 1 << 13 popupTitleExtend = 1 << 14 popupTitleNoStyle = 1 << 15 popupTitleLeftJust = 0x00000000 popupTitleCenterJust = 0x00000001 popupTitleRightJust = 0x000000FF pushButProc = 0 checkBoxProc = 1 radioButProc = 2 scrollBarProc = 16 popupMenuProc = 1008 kControlLabelPart = 1 kControlMenuPart = 2 kControlTrianglePart = 4 kControlEditTextPart = 5 kControlPicturePart = 6 kControlIconPart = 7 kControlClockPart = 8 kControlListBoxPart = 24 kControlListBoxDoubleClickPart = 25 kControlImageWellPart = 26 kControlRadioGroupPart = 27 kControlButtonPart = 10 kControlCheckBoxPart = 11 kControlRadioButtonPart = 11 kControlUpButtonPart = 20 kControlDownButtonPart = 21 kControlPageUpPart = 22 kControlPageDownPart = 23 kControlClockHourDayPart = 9 kControlClockMinuteMonthPart = 10 kControlClockSecondYearPart = 11 kControlClockAMPMPart = 12 kControlDataBrowserPart = 24 kControlDataBrowserDraggedPart = 25 kControlBevelButtonSmallBevelProc = 32 kControlBevelButtonNormalBevelProc = 33 kControlBevelButtonLargeBevelProc = 34 kControlBevelButtonSmallBevelVariant = 0 kControlBevelButtonNormalBevelVariant = (1 << 0) kControlBevelButtonLargeBevelVariant = (1 << 1) kControlBevelButtonMenuOnRightVariant = (1 << 2) kControlBevelButtonSmallBevel = 0 kControlBevelButtonNormalBevel = 1 kControlBevelButtonLargeBevel = 2 kControlBehaviorPushbutton = 0 kControlBehaviorToggles = 0x0100 kControlBehaviorSticky = 0x0200 kControlBehaviorSingleValueMenu = 0 kControlBehaviorMultiValueMenu = 0x4000 kControlBehaviorOffsetContents = 0x8000 kControlBehaviorCommandMenu = 0x2000 kControlBevelButtonMenuOnBottom = 0 kControlBevelButtonMenuOnRight = (1 << 2) kControlKindBevelButton = FOUR_CHAR_CODE('bevl') kControlBevelButtonAlignSysDirection = -1 kControlBevelButtonAlignCenter = 0 kControlBevelButtonAlignLeft = 1 kControlBevelButtonAlignRight = 2 kControlBevelButtonAlignTop = 3 kControlBevelButtonAlignBottom = 4 kControlBevelButtonAlignTopLeft = 5 kControlBevelButtonAlignBottomLeft = 6 kControlBevelButtonAlignTopRight = 7 kControlBevelButtonAlignBottomRight = 8 kControlBevelButtonAlignTextSysDirection = teFlushDefault kControlBevelButtonAlignTextCenter = teCenter kControlBevelButtonAlignTextFlushRight = teFlushRight kControlBevelButtonAlignTextFlushLeft = teFlushLeft kControlBevelButtonPlaceSysDirection = -1 kControlBevelButtonPlaceNormally = 0 kControlBevelButtonPlaceToRightOfGraphic = 1 kControlBevelButtonPlaceToLeftOfGraphic = 2 kControlBevelButtonPlaceBelowGraphic = 3 kControlBevelButtonPlaceAboveGraphic = 4 kControlBevelButtonContentTag = FOUR_CHAR_CODE('cont') kControlBevelButtonTransformTag = FOUR_CHAR_CODE('tran') kControlBevelButtonTextAlignTag = FOUR_CHAR_CODE('tali') kControlBevelButtonTextOffsetTag = FOUR_CHAR_CODE('toff') kControlBevelButtonGraphicAlignTag = FOUR_CHAR_CODE('gali') kControlBevelButtonGraphicOffsetTag = FOUR_CHAR_CODE('goff') kControlBevelButtonTextPlaceTag = FOUR_CHAR_CODE('tplc') kControlBevelButtonMenuValueTag = FOUR_CHAR_CODE('mval') kControlBevelButtonMenuHandleTag = FOUR_CHAR_CODE('mhnd') kControlBevelButtonMenuRefTag = FOUR_CHAR_CODE('mhnd') # kControlBevelButtonCenterPopupGlyphTag = FOUR_CHAR_CODE('pglc') kControlBevelButtonLastMenuTag = FOUR_CHAR_CODE('lmnu') kControlBevelButtonMenuDelayTag = FOUR_CHAR_CODE('mdly') kControlBevelButtonScaleIconTag = FOUR_CHAR_CODE('scal') kControlBevelButtonOwnedMenuRefTag = FOUR_CHAR_CODE('omrf') kControlBevelButtonKindTag = FOUR_CHAR_CODE('bebk') kControlSliderProc = 48 kControlSliderLiveFeedback = (1 << 0) kControlSliderHasTickMarks = (1 << 1) kControlSliderReverseDirection = (1 << 2) kControlSliderNonDirectional = (1 << 3) kControlSliderPointsDownOrRight = 0 kControlSliderPointsUpOrLeft = 1 kControlSliderDoesNotPoint = 2 kControlKindSlider = FOUR_CHAR_CODE('sldr') kControlTriangleProc = 64 kControlTriangleLeftFacingProc = 65 kControlTriangleAutoToggleProc = 66 kControlTriangleLeftFacingAutoToggleProc = 67 kControlDisclosureTrianglePointDefault = 0 kControlDisclosureTrianglePointRight = 1 kControlDisclosureTrianglePointLeft = 2 kControlKindDisclosureTriangle = FOUR_CHAR_CODE('dist') kControlTriangleLastValueTag = FOUR_CHAR_CODE('last') kControlProgressBarProc = 80 kControlRelevanceBarProc = 81 kControlKindProgressBar = FOUR_CHAR_CODE('prgb') kControlKindRelevanceBar = FOUR_CHAR_CODE('relb') kControlProgressBarIndeterminateTag = FOUR_CHAR_CODE('inde') kControlProgressBarAnimatingTag = FOUR_CHAR_CODE('anim') kControlLittleArrowsProc = 96 kControlKindLittleArrows = FOUR_CHAR_CODE('larr') kControlChasingArrowsProc = 112 kControlKindChasingArrows = FOUR_CHAR_CODE('carr') kControlChasingArrowsAnimatingTag = FOUR_CHAR_CODE('anim') kControlTabLargeProc = 128 kControlTabSmallProc = 129 kControlTabLargeNorthProc = 128 kControlTabSmallNorthProc = 129 kControlTabLargeSouthProc = 130 kControlTabSmallSouthProc = 131 kControlTabLargeEastProc = 132 kControlTabSmallEastProc = 133 kControlTabLargeWestProc = 134 kControlTabSmallWestProc = 135 kControlTabDirectionNorth = 0 kControlTabDirectionSouth = 1 kControlTabDirectionEast = 2 kControlTabDirectionWest = 3 kControlTabSizeLarge = kControlSizeNormal kControlTabSizeSmall = kControlSizeSmall kControlKindTabs = FOUR_CHAR_CODE('tabs') kControlTabContentRectTag = FOUR_CHAR_CODE('rect') kControlTabEnabledFlagTag = FOUR_CHAR_CODE('enab') kControlTabFontStyleTag = kControlFontStyleTag kControlTabInfoTag = FOUR_CHAR_CODE('tabi') kControlTabImageContentTag = FOUR_CHAR_CODE('cont') kControlTabInfoVersionZero = 0 kControlTabInfoVersionOne = 1 kControlSeparatorLineProc = 144 kControlKindSeparator = FOUR_CHAR_CODE('sepa') kControlGroupBoxTextTitleProc = 160 kControlGroupBoxCheckBoxProc = 161 kControlGroupBoxPopupButtonProc = 162 kControlGroupBoxSecondaryTextTitleProc = 164 kControlGroupBoxSecondaryCheckBoxProc = 165 kControlGroupBoxSecondaryPopupButtonProc = 166 kControlKindGroupBox = FOUR_CHAR_CODE('grpb') kControlKindCheckGroupBox = FOUR_CHAR_CODE('cgrp') kControlKindPopupGroupBox = FOUR_CHAR_CODE('pgrp') kControlGroupBoxMenuHandleTag = FOUR_CHAR_CODE('mhan') kControlGroupBoxMenuRefTag = FOUR_CHAR_CODE('mhan') kControlGroupBoxFontStyleTag = kControlFontStyleTag kControlGroupBoxTitleRectTag = FOUR_CHAR_CODE('trec') kControlImageWellProc = 176 kControlKindImageWell = FOUR_CHAR_CODE('well') kControlImageWellContentTag = FOUR_CHAR_CODE('cont') kControlImageWellTransformTag = FOUR_CHAR_CODE('tran') kControlImageWellIsDragDestinationTag = FOUR_CHAR_CODE('drag') kControlPopupArrowEastProc = 192 kControlPopupArrowWestProc = 193 kControlPopupArrowNorthProc = 194 kControlPopupArrowSouthProc = 195 kControlPopupArrowSmallEastProc = 196 kControlPopupArrowSmallWestProc = 197 kControlPopupArrowSmallNorthProc = 198 kControlPopupArrowSmallSouthProc = 199 kControlPopupArrowOrientationEast = 0 kControlPopupArrowOrientationWest = 1 kControlPopupArrowOrientationNorth = 2 kControlPopupArrowOrientationSouth = 3 kControlPopupArrowSizeNormal = 0 kControlPopupArrowSizeSmall = 1 kControlKindPopupArrow = FOUR_CHAR_CODE('parr') kControlPlacardProc = 224 kControlKindPlacard = FOUR_CHAR_CODE('plac') kControlClockTimeProc = 240 kControlClockTimeSecondsProc = 241 kControlClockDateProc = 242 kControlClockMonthYearProc = 243 kControlClockTypeHourMinute = 0 kControlClockTypeHourMinuteSecond = 1 kControlClockTypeMonthDayYear = 2 kControlClockTypeMonthYear = 3 kControlClockFlagStandard = 0 kControlClockNoFlags = 0 kControlClockFlagDisplayOnly = 1 kControlClockIsDisplayOnly = 1 kControlClockFlagLive = 2 kControlClockIsLive = 2 kControlKindClock = FOUR_CHAR_CODE('clck') kControlClockLongDateTag = FOUR_CHAR_CODE('date') kControlClockFontStyleTag = kControlFontStyleTag kControlClockAnimatingTag = FOUR_CHAR_CODE('anim') kControlUserPaneProc = 256 kControlKindUserPane = FOUR_CHAR_CODE('upan') kControlUserItemDrawProcTag = FOUR_CHAR_CODE('uidp') kControlUserPaneDrawProcTag = FOUR_CHAR_CODE('draw') kControlUserPaneHitTestProcTag = FOUR_CHAR_CODE('hitt') kControlUserPaneTrackingProcTag = FOUR_CHAR_CODE('trak') kControlUserPaneIdleProcTag = FOUR_CHAR_CODE('idle') kControlUserPaneKeyDownProcTag = FOUR_CHAR_CODE('keyd') kControlUserPaneActivateProcTag = FOUR_CHAR_CODE('acti') kControlUserPaneFocusProcTag = FOUR_CHAR_CODE('foci') kControlUserPaneBackgroundProcTag = FOUR_CHAR_CODE('back') kControlEditTextProc = 272 kControlEditTextPasswordProc = 274 kControlEditTextInlineInputProc = 276 kControlKindEditText = FOUR_CHAR_CODE('etxt') kControlEditTextStyleTag = kControlFontStyleTag kControlEditTextTextTag = FOUR_CHAR_CODE('text') kControlEditTextTEHandleTag = FOUR_CHAR_CODE('than') kControlEditTextKeyFilterTag = kControlKeyFilterTag kControlEditTextSelectionTag = FOUR_CHAR_CODE('sele') kControlEditTextPasswordTag = FOUR_CHAR_CODE('pass') kControlEditTextKeyScriptBehaviorTag = FOUR_CHAR_CODE('kscr') kControlEditTextLockedTag = FOUR_CHAR_CODE('lock') kControlEditTextFixedTextTag = FOUR_CHAR_CODE('ftxt') kControlEditTextValidationProcTag = FOUR_CHAR_CODE('vali') kControlEditTextInlinePreUpdateProcTag = FOUR_CHAR_CODE('prup') kControlEditTextInlinePostUpdateProcTag = FOUR_CHAR_CODE('poup') kControlEditTextCFStringTag = FOUR_CHAR_CODE('cfst') kControlEditTextPasswordCFStringTag = FOUR_CHAR_CODE('pwcf') kControlStaticTextProc = 288 kControlKindStaticText = FOUR_CHAR_CODE('stxt') kControlStaticTextStyleTag = kControlFontStyleTag kControlStaticTextTextTag = FOUR_CHAR_CODE('text') kControlStaticTextTextHeightTag = FOUR_CHAR_CODE('thei') kControlStaticTextTruncTag = FOUR_CHAR_CODE('trun') kControlStaticTextCFStringTag = FOUR_CHAR_CODE('cfst') kControlPictureProc = 304 kControlPictureNoTrackProc = 305 kControlKindPicture = FOUR_CHAR_CODE('pict') kControlPictureHandleTag = FOUR_CHAR_CODE('pich') kControlIconProc = 320 kControlIconNoTrackProc = 321 kControlIconSuiteProc = 322 kControlIconSuiteNoTrackProc = 323 kControlIconRefProc = 324 kControlIconRefNoTrackProc = 325 kControlKindIcon = FOUR_CHAR_CODE('icon') kControlIconTransformTag = FOUR_CHAR_CODE('trfm') kControlIconAlignmentTag = FOUR_CHAR_CODE('algn') kControlIconResourceIDTag = FOUR_CHAR_CODE('ires') kControlIconContentTag = FOUR_CHAR_CODE('cont') kControlWindowHeaderProc = 336 kControlWindowListViewHeaderProc = 337 kControlKindWindowHeader = FOUR_CHAR_CODE('whed') kControlListBoxProc = 352 kControlListBoxAutoSizeProc = 353 kControlKindListBox = FOUR_CHAR_CODE('lbox') kControlListBoxListHandleTag = FOUR_CHAR_CODE('lhan') kControlListBoxKeyFilterTag = kControlKeyFilterTag kControlListBoxFontStyleTag = kControlFontStyleTag kControlListBoxDoubleClickTag = FOUR_CHAR_CODE('dblc') kControlListBoxLDEFTag = FOUR_CHAR_CODE('ldef') kControlPushButtonProc = 368 kControlCheckBoxProc = 369 kControlRadioButtonProc = 370 kControlPushButLeftIconProc = 374 kControlPushButRightIconProc = 375 kControlCheckBoxAutoToggleProc = 371 kControlRadioButtonAutoToggleProc = 372 kControlPushButtonIconOnLeft = 6 kControlPushButtonIconOnRight = 7 kControlKindPushButton = FOUR_CHAR_CODE('push') kControlKindPushIconButton = FOUR_CHAR_CODE('picn') kControlKindRadioButton = FOUR_CHAR_CODE('rdio') kControlKindCheckBox = FOUR_CHAR_CODE('cbox') kControlPushButtonDefaultTag = FOUR_CHAR_CODE('dflt') kControlPushButtonCancelTag = FOUR_CHAR_CODE('cncl') kControlScrollBarProc = 384 kControlScrollBarLiveProc = 386 kControlKindScrollBar = FOUR_CHAR_CODE('sbar') kControlScrollBarShowsArrowsTag = FOUR_CHAR_CODE('arro') kControlPopupButtonProc = 400 kControlPopupFixedWidthVariant = 1 << 0 kControlPopupVariableWidthVariant = 1 << 1 kControlPopupUseAddResMenuVariant = 1 << 2 kControlPopupUseWFontVariant = kControlUsesOwningWindowsFontVariant kControlKindPopupButton = FOUR_CHAR_CODE('popb') kControlPopupButtonMenuHandleTag = FOUR_CHAR_CODE('mhan') kControlPopupButtonMenuRefTag = FOUR_CHAR_CODE('mhan') kControlPopupButtonMenuIDTag = FOUR_CHAR_CODE('mnid') kControlPopupButtonExtraHeightTag = FOUR_CHAR_CODE('exht') kControlPopupButtonOwnedMenuRefTag = FOUR_CHAR_CODE('omrf') kControlPopupButtonCheckCurrentTag = FOUR_CHAR_CODE('chck') kControlRadioGroupProc = 416 kControlKindRadioGroup = FOUR_CHAR_CODE('rgrp') kControlScrollTextBoxProc = 432 kControlScrollTextBoxAutoScrollProc = 433 kControlKindScrollingTextBox = FOUR_CHAR_CODE('stbx') kControlScrollTextBoxDelayBeforeAutoScrollTag = FOUR_CHAR_CODE('stdl') kControlScrollTextBoxDelayBetweenAutoScrollTag = FOUR_CHAR_CODE('scdl') kControlScrollTextBoxAutoScrollAmountTag = FOUR_CHAR_CODE('samt') kControlScrollTextBoxContentsTag = FOUR_CHAR_CODE('tres') kControlScrollTextBoxAnimatingTag = FOUR_CHAR_CODE('anim') kControlKindDisclosureButton = FOUR_CHAR_CODE('disb') kControlDisclosureButtonClosed = 0 kControlDisclosureButtonDisclosed = 1 kControlRoundButtonNormalSize = kControlSizeNormal kControlRoundButtonLargeSize = kControlSizeLarge kControlRoundButtonContentTag = FOUR_CHAR_CODE('cont') kControlRoundButtonSizeTag = kControlSizeTag kControlKindRoundButton = FOUR_CHAR_CODE('rndb') kControlKindDataBrowser = FOUR_CHAR_CODE('datb') errDataBrowserNotConfigured = -4970 errDataBrowserItemNotFound = -4971 errDataBrowserItemNotAdded = -4975 errDataBrowserPropertyNotFound = -4972 errDataBrowserInvalidPropertyPart = -4973 errDataBrowserInvalidPropertyData = -4974 errDataBrowserPropertyNotSupported = -4979 kControlDataBrowserIncludesFrameAndFocusTag = FOUR_CHAR_CODE('brdr') kControlDataBrowserKeyFilterTag = kControlEditTextKeyFilterTag kControlDataBrowserEditTextKeyFilterTag = kControlDataBrowserKeyFilterTag kControlDataBrowserEditTextValidationProcTag = kControlEditTextValidationProcTag kDataBrowserNoView = 0x3F3F3F3F kDataBrowserListView = FOUR_CHAR_CODE('lstv') kDataBrowserColumnView = FOUR_CHAR_CODE('clmv') kDataBrowserDragSelect = 1 << 0 kDataBrowserSelectOnlyOne = 1 << 1 kDataBrowserResetSelection = 1 << 2 kDataBrowserCmdTogglesSelection = 1 << 3 kDataBrowserNoDisjointSelection = 1 << 4 kDataBrowserAlwaysExtendSelection = 1 << 5 kDataBrowserNeverEmptySelectionSet = 1 << 6 kDataBrowserOrderUndefined = 0 kDataBrowserOrderIncreasing = 1 kDataBrowserOrderDecreasing = 2 kDataBrowserNoItem = 0L kDataBrowserItemNoState = 0 # kDataBrowserItemAnyState = (unsigned long)(-1) kDataBrowserItemIsSelected = 1 << 0 kDataBrowserContainerIsOpen = 1 << 1 kDataBrowserItemIsDragTarget = 1 << 2 kDataBrowserRevealOnly = 0 kDataBrowserRevealAndCenterInView = 1 << 0 kDataBrowserRevealWithoutSelecting = 1 << 1 kDataBrowserItemsAdd = 0 kDataBrowserItemsAssign = 1 kDataBrowserItemsToggle = 2 kDataBrowserItemsRemove = 3 kDataBrowserSelectionAnchorUp = 0 kDataBrowserSelectionAnchorDown = 1 kDataBrowserSelectionAnchorLeft = 2 kDataBrowserSelectionAnchorRight = 3 kDataBrowserEditMsgUndo = kHICommandUndo kDataBrowserEditMsgRedo = kHICommandRedo kDataBrowserEditMsgCut = kHICommandCut kDataBrowserEditMsgCopy = kHICommandCopy kDataBrowserEditMsgPaste = kHICommandPaste kDataBrowserEditMsgClear = kHICommandClear kDataBrowserEditMsgSelectAll = kHICommandSelectAll kDataBrowserItemAdded = 1 kDataBrowserItemRemoved = 2 kDataBrowserEditStarted = 3 kDataBrowserEditStopped = 4 kDataBrowserItemSelected = 5 kDataBrowserItemDeselected = 6 kDataBrowserItemDoubleClicked = 7 kDataBrowserContainerOpened = 8 kDataBrowserContainerClosing = 9 kDataBrowserContainerClosed = 10 kDataBrowserContainerSorting = 11 kDataBrowserContainerSorted = 12 kDataBrowserUserToggledContainer = 16 kDataBrowserTargetChanged = 15 kDataBrowserUserStateChanged = 13 kDataBrowserSelectionSetChanged = 14 kDataBrowserItemNoProperty = 0L kDataBrowserItemIsActiveProperty = 1L kDataBrowserItemIsSelectableProperty = 2L kDataBrowserItemIsEditableProperty = 3L kDataBrowserItemIsContainerProperty = 4L kDataBrowserContainerIsOpenableProperty = 5L kDataBrowserContainerIsClosableProperty = 6L kDataBrowserContainerIsSortableProperty = 7L kDataBrowserItemSelfIdentityProperty = 8L kDataBrowserContainerAliasIDProperty = 9L kDataBrowserColumnViewPreviewProperty = 10L kDataBrowserItemParentContainerProperty = 11L kDataBrowserCustomType = 0x3F3F3F3F kDataBrowserIconType = FOUR_CHAR_CODE('icnr') kDataBrowserTextType = FOUR_CHAR_CODE('text') kDataBrowserDateTimeType = FOUR_CHAR_CODE('date') kDataBrowserSliderType = FOUR_CHAR_CODE('sldr') kDataBrowserCheckboxType = FOUR_CHAR_CODE('chbx') kDataBrowserProgressBarType = FOUR_CHAR_CODE('prog') kDataBrowserRelevanceRankType = FOUR_CHAR_CODE('rank') kDataBrowserPopupMenuType = FOUR_CHAR_CODE('menu') kDataBrowserIconAndTextType = FOUR_CHAR_CODE('ticn') kDataBrowserPropertyEnclosingPart = 0L kDataBrowserPropertyContentPart = FOUR_CHAR_CODE('----') kDataBrowserPropertyDisclosurePart = FOUR_CHAR_CODE('disc') kDataBrowserPropertyTextPart = kDataBrowserTextType kDataBrowserPropertyIconPart = kDataBrowserIconType kDataBrowserPropertySliderPart = kDataBrowserSliderType kDataBrowserPropertyCheckboxPart = kDataBrowserCheckboxType kDataBrowserPropertyProgressBarPart = kDataBrowserProgressBarType kDataBrowserPropertyRelevanceRankPart = kDataBrowserRelevanceRankType kDataBrowserUniversalPropertyFlagsMask = 0xFF kDataBrowserPropertyIsMutable = 1 << 0 kDataBrowserDefaultPropertyFlags = 0 << 0 kDataBrowserUniversalPropertyFlags = kDataBrowserUniversalPropertyFlagsMask kDataBrowserPropertyIsEditable = kDataBrowserPropertyIsMutable kDataBrowserPropertyFlagsOffset = 8 kDataBrowserPropertyFlagsMask = 0xFF << kDataBrowserPropertyFlagsOffset kDataBrowserCheckboxTriState = 1 << kDataBrowserPropertyFlagsOffset kDataBrowserDateTimeRelative = 1 << (kDataBrowserPropertyFlagsOffset) kDataBrowserDateTimeDateOnly = 1 << (kDataBrowserPropertyFlagsOffset + 1) kDataBrowserDateTimeTimeOnly = 1 << (kDataBrowserPropertyFlagsOffset + 2) kDataBrowserDateTimeSecondsToo = 1 << (kDataBrowserPropertyFlagsOffset + 3) kDataBrowserSliderPlainThumb = kThemeThumbPlain << kDataBrowserPropertyFlagsOffset kDataBrowserSliderUpwardThumb = kThemeThumbUpward << kDataBrowserPropertyFlagsOffset kDataBrowserSliderDownwardThumb = kThemeThumbDownward << kDataBrowserPropertyFlagsOffset kDataBrowserDoNotTruncateText = 3 << kDataBrowserPropertyFlagsOffset kDataBrowserTruncateTextAtEnd = 2 << kDataBrowserPropertyFlagsOffset kDataBrowserTruncateTextMiddle = 0 << kDataBrowserPropertyFlagsOffset kDataBrowserTruncateTextAtStart = 1 << kDataBrowserPropertyFlagsOffset kDataBrowserPropertyModificationFlags = kDataBrowserPropertyFlagsMask kDataBrowserRelativeDateTime = kDataBrowserDateTimeRelative kDataBrowserViewSpecificFlagsOffset = 16 kDataBrowserViewSpecificFlagsMask = 0xFF << kDataBrowserViewSpecificFlagsOffset kDataBrowserViewSpecificPropertyFlags = kDataBrowserViewSpecificFlagsMask kDataBrowserClientPropertyFlagsOffset = 24 # kDataBrowserClientPropertyFlagsMask = (unsigned long)(0xFF << kDataBrowserClientPropertyFlagsOffset) kDataBrowserLatestCallbacks = 0 kDataBrowserContentHit = 1 kDataBrowserNothingHit = 0 kDataBrowserStopTracking = -1 kDataBrowserLatestCustomCallbacks = 0 kDataBrowserTableViewMinimalHilite = 0 kDataBrowserTableViewFillHilite = 1 kDataBrowserTableViewSelectionColumn = 1 << kDataBrowserViewSpecificFlagsOffset kDataBrowserTableViewLastColumn = -1 kDataBrowserListViewMovableColumn = 1 << (kDataBrowserViewSpecificFlagsOffset + 1) kDataBrowserListViewSortableColumn = 1 << (kDataBrowserViewSpecificFlagsOffset + 2) kDataBrowserListViewSelectionColumn = kDataBrowserTableViewSelectionColumn kDataBrowserListViewDefaultColumnFlags = kDataBrowserListViewMovableColumn + kDataBrowserListViewSortableColumn kDataBrowserListViewLatestHeaderDesc = 0 kDataBrowserListViewAppendColumn = kDataBrowserTableViewLastColumn kControlEditUnicodeTextPostUpdateProcTag = FOUR_CHAR_CODE('upup') kControlEditUnicodeTextProc = 912 kControlEditUnicodeTextPasswordProc = 914 kControlKindEditUnicodeText = FOUR_CHAR_CODE('eutx') kControlCheckboxUncheckedValue = kControlCheckBoxUncheckedValue kControlCheckboxCheckedValue = kControlCheckBoxCheckedValue kControlCheckboxMixedValue = kControlCheckBoxMixedValue inLabel = kControlLabelPart inMenu = kControlMenuPart inTriangle = kControlTrianglePart inButton = kControlButtonPart inCheckBox = kControlCheckBoxPart inUpButton = kControlUpButtonPart inDownButton = kControlDownButtonPart inPageUp = kControlPageUpPart inPageDown = kControlPageDownPart kInLabelControlPart = kControlLabelPart kInMenuControlPart = kControlMenuPart kInTriangleControlPart = kControlTrianglePart kInButtonControlPart = kControlButtonPart kInCheckBoxControlPart = kControlCheckBoxPart kInUpButtonControlPart = kControlUpButtonPart kInDownButtonControlPart = kControlDownButtonPart kInPageUpControlPart = kControlPageUpPart kInPageDownControlPart = kControlPageDownPart --- NEW FILE: CoreFoundation.py --- # Generated from 'CFBase.h' def FOUR_CHAR_CODE(x): return x kCFCompareLessThan = -1 kCFCompareEqualTo = 0 kCFCompareGreaterThan = 1 kCFNotFound = -1 kCFPropertyListImmutable = 0 kCFPropertyListMutableContainers = 1 kCFPropertyListMutableContainersAndLeaves = 2 # kCFStringEncodingInvalidId = (long)0xFFFFFFFF kCFStringEncodingMacRoman = 0 kCFStringEncodingWindowsLatin1 = 0x0500 kCFStringEncodingISOLatin1 = 0x0201 kCFStringEncodingNextStepLatin = 0x0B01 kCFStringEncodingASCII = 0x0600 kCFStringEncodingUnicode = 0x0100 kCFStringEncodingUTF8 = 0x08000100 kCFStringEncodingNonLossyASCII = 0x0BFF kCFCompareCaseInsensitive = 1 kCFCompareBackwards = 4 kCFCompareAnchored = 8 kCFCompareNonliteral = 16 kCFCompareLocalized = 32 kCFCompareNumerically = 64 kCFURLPOSIXPathStyle = 0 kCFURLHFSPathStyle = 1 kCFURLWindowsPathStyle = 2 --- NEW FILE: CoreGraphics.py --- # Generated from 'CGContext.h' def FOUR_CHAR_CODE(x): return x kCGLineJoinMiter = 0 kCGLineJoinRound = 1 kCGLineJoinBevel = 2 kCGLineCapButt = 0 kCGLineCapRound = 1 kCGLineCapSquare = 2 kCGPathFill = 0 kCGPathEOFill = 1 kCGPathStroke = 2 kCGPathFillStroke = 3 kCGPathEOFillStroke = 4 kCGTextFill = 0 kCGTextStroke = 1 kCGTextFillStroke = 2 kCGTextInvisible = 3 kCGTextFillClip = 4 kCGTextStrokeClip = 5 kCGTextFillStrokeClip = 6 kCGTextClip = 7 kCGEncodingFontSpecific = 0 kCGEncodingMacRoman = 1 kCGInterpolationDefault = 0 kCGInterpolationNone = 1 kCGInterpolationLow = 2 kCGInterpolationHigh = 3 --- NEW FILE: Ctl.py --- from _Ctl import * --- NEW FILE: Dialogs.py --- # Generated from 'Dialogs.h' def FOUR_CHAR_CODE(x): return x kControlDialogItem = 4 kButtonDialogItem = kControlDialogItem | 0 kCheckBoxDialogItem = kControlDialogItem | 1 kRadioButtonDialogItem = kControlDialogItem | 2 kResourceControlDialogItem = kControlDialogItem | 3 kStaticTextDialogItem = 8 kEditTextDialogItem = 16 kIconDialogItem = 32 kPictureDialogItem = 64 kUserDialogItem = 0 kHelpDialogItem = 1 kItemDisableBit = 128 ctrlItem = 4 btnCtrl = 0 chkCtrl = 1 radCtrl = 2 resCtrl = 3 statText = 8 editText = 16 iconItem = 32 picItem = 64 userItem = 0 itemDisable = 128 kStdOkItemIndex = 1 kStdCancelItemIndex = 2 ok = kStdOkItemIndex cancel = kStdCancelItemIndex kStopIcon = 0 kNoteIcon = 1 kCautionIcon = 2 stopIcon = kStopIcon noteIcon = kNoteIcon cautionIcon = kCautionIcon kOkItemIndex = 1 kCancelItemIndex = 2 overlayDITL = 0 appendDITLRight = 1 appendDITLBottom = 2 kAlertStopAlert = 0 kAlertNoteAlert = 1 kAlertCautionAlert = 2 kAlertPlainAlert = 3 kAlertDefaultOKText = -1 kAlertDefaultCancelText = -1 kAlertDefaultOtherText = -1 kAlertStdAlertOKButton = 1 kAlertStdAlertCancelButton = 2 kAlertStdAlertOtherButton = 3 kAlertStdAlertHelpButton = 4 kDialogFlagsUseThemeBackground = (1 << 0) kDialogFlagsUseControlHierarchy = (1 << 1) kDialogFlagsHandleMovableModal = (1 << 2) kDialogFlagsUseThemeControls = (1 << 3) kAlertFlagsUseThemeBackground = (1 << 0) kAlertFlagsUseControlHierarchy = (1 << 1) kAlertFlagsAlertIsMovable = (1 << 2) kAlertFlagsUseThemeControls = (1 << 3) kDialogFontNoFontStyle = 0 kDialogFontUseFontMask = 0x0001 kDialogFontUseFaceMask = 0x0002 kDialogFontUseSizeMask = 0x0004 kDialogFontUseForeColorMask = 0x0008 kDialogFontUseBackColorMask = 0x0010 kDialogFontUseModeMask = 0x0020 kDialogFontUseJustMask = 0x0040 kDialogFontUseAllMask = 0x00FF kDialogFontAddFontSizeMask = 0x0100 kDialogFontUseFontNameMask = 0x0200 kDialogFontAddToMetaFontMask = 0x0400 kDialogFontUseThemeFontIDMask = 0x0080 kHICommandOther = FOUR_CHAR_CODE('othr') kStdCFStringAlertVersionOne = 1 kStdAlertDoNotDisposeSheet = 1 << 0 kStdAlertDoNotAnimateOnDefault = 1 << 1 kStdAlertDoNotAnimateOnCancel = 1 << 2 kStdAlertDoNotAnimateOnOther = 1 << 3 --- NEW FILE: Dlg.py --- from _Dlg import * --- NEW FILE: Drag.py --- from _Drag import * --- NEW FILE: Dragconst.py --- # Generated from 'Drag.h' def FOUR_CHAR_CODE(x): return x from Carbon.TextEdit import * from Carbon.QuickDraw import * fkDragActionAll = -1 kDragHasLeftSenderWindow = (1 << 0) kDragInsideSenderApplication = (1 << 1) kDragInsideSenderWindow = (1 << 2) kDragRegionAndImage = (1 << 4) flavorSenderOnly = (1 << 0) flavorSenderTranslated = (1 << 1) flavorNotSaved = (1 << 2) flavorSystemTranslated = (1 << 8) kDragHasLeftSenderWindow = (1L << 0) kDragInsideSenderApplication = (1L << 1) kDragInsideSenderWindow = (1L << 2) kDragBehaviorNone = 0 kDragBehaviorZoomBackAnimation = (1L << 0) kDragRegionAndImage = (1L << 4) kDragStandardTranslucency = 0L kDragDarkTranslucency = 1L kDragDarkerTranslucency = 2L kDragOpaqueTranslucency = 3L kDragRegionBegin = 1 kDragRegionDraw = 2 kDragRegionHide = 3 kDragRegionIdle = 4 kDragRegionEnd = 5 kZoomNoAcceleration = 0 kZoomAccelerate = 1 kZoomDecelerate = 2 flavorSenderOnly = (1 << 0) flavorSenderTranslated = (1 << 1) flavorNotSaved = (1 << 2) flavorSystemTranslated = (1 << 8) flavorDataPromised = (1 << 9) kDragFlavorTypeHFS = FOUR_CHAR_CODE('hfs ') kDragFlavorTypePromiseHFS = FOUR_CHAR_CODE('phfs') flavorTypeHFS = kDragFlavorTypeHFS flavorTypePromiseHFS = kDragFlavorTypePromiseHFS kDragPromisedFlavorFindFile = FOUR_CHAR_CODE('rWm1') kDragPromisedFlavor = FOUR_CHAR_CODE('fssP') kDragPseudoCreatorVolumeOrDirectory = FOUR_CHAR_CODE('MACS') kDragPseudoFileTypeVolume = FOUR_CHAR_CODE('disk') kDragPseudoFileTypeDirectory = FOUR_CHAR_CODE('fold') flavorTypeDirectory = FOUR_CHAR_CODE('diry') kFlavorTypeClippingName = FOUR_CHAR_CODE('clnm') kFlavorTypeClippingFilename = FOUR_CHAR_CODE('clfn') kFlavorTypeDragToTrashOnly = FOUR_CHAR_CODE('fdtt') kFlavorTypeFinderNoTrackingBehavior = FOUR_CHAR_CODE('fntb') kDragTrackingEnterHandler = 1 kDragTrackingEnterWindow = 2 kDragTrackingInWindow = 3 kDragTrackingLeaveWindow = 4 kDragTrackingLeaveHandler = 5 kDragActionNothing = 0L kDragActionCopy = 1L kDragActionAlias = (1L << 1) kDragActionGeneric = (1L << 2) kDragActionPrivate = (1L << 3) kDragActionMove = (1L << 4) kDragActionDelete = (1L << 5) # kDragActionAll = (long)0xFFFFFFFF dragHasLeftSenderWindow = kDragHasLeftSenderWindow dragInsideSenderApplication = kDragInsideSenderApplication dragInsideSenderWindow = kDragInsideSenderWindow dragTrackingEnterHandler = kDragTrackingEnterHandler dragTrackingEnterWindow = kDragTrackingEnterWindow dragTrackingInWindow = kDragTrackingInWindow dragTrackingLeaveWindow = kDragTrackingLeaveWindow dragTrackingLeaveHandler = kDragTrackingLeaveHandler dragRegionBegin = kDragRegionBegin dragRegionDraw = kDragRegionDraw dragRegionHide = kDragRegionHide dragRegionIdle = kDragRegionIdle dragRegionEnd = kDragRegionEnd zoomNoAcceleration = kZoomNoAcceleration zoomAccelerate = kZoomAccelerate zoomDecelerate = kZoomDecelerate kDragStandardImage = kDragStandardTranslucency kDragDarkImage = kDragDarkTranslucency kDragDarkerImage = kDragDarkerTranslucency kDragOpaqueImage = kDragOpaqueTranslucency --- NEW FILE: Events.py --- # Generated from 'Events.h' nullEvent = 0 mouseDown = 1 mouseUp = 2 keyDown = 3 keyUp = 4 autoKey = 5 updateEvt = 6 diskEvt = 7 activateEvt = 8 osEvt = 15 kHighLevelEvent = 23 mDownMask = 1 << mouseDown mUpMask = 1 << mouseUp keyDownMask = 1 << keyDown keyUpMask = 1 << keyUp autoKeyMask = 1 << autoKey updateMask = 1 << updateEvt diskMask = 1 << diskEvt activMask = 1 << activateEvt highLevelEventMask = 0x0400 osMask = 1 << osEvt everyEvent = 0xFFFF charCodeMask = 0x000000FF keyCodeMask = 0x0000FF00 adbAddrMask = 0x00FF0000 # osEvtMessageMask = (unsigned long)0xFF000000 mouseMovedMessage = 0x00FA suspendResumeMessage = 0x0001 resumeFlag = 1 convertClipboardFlag = 2 activeFlagBit = 0 btnStateBit = 7 cmdKeyBit = 8 shiftKeyBit = 9 alphaLockBit = 10 optionKeyBit = 11 controlKeyBit = 12 rightShiftKeyBit = 13 rightOptionKeyBit = 14 rightControlKeyBit = 15 activeFlag = 1 << activeFlagBit btnState = 1 << btnStateBit cmdKey = 1 << cmdKeyBit shiftKey = 1 << shiftKeyBit alphaLock = 1 << alphaLockBit optionKey = 1 << optionKeyBit controlKey = 1 << controlKeyBit rightShiftKey = 1 << rightShiftKeyBit rightOptionKey = 1 << rightOptionKeyBit rightControlKey = 1 << rightControlKeyBit kNullCharCode = 0 kHomeCharCode = 1 kEnterCharCode = 3 kEndCharCode = 4 kHelpCharCode = 5 kBellCharCode = 7 kBackspaceCharCode = 8 kTabCharCode = 9 kLineFeedCharCode = 10 kVerticalTabCharCode = 11 kPageUpCharCode = 11 kFormFeedCharCode = 12 kPageDownCharCode = 12 kReturnCharCode = 13 kFunctionKeyCharCode = 16 kCommandCharCode = 17 kCheckCharCode = 18 kDiamondCharCode = 19 kAppleLogoCharCode = 20 kEscapeCharCode = 27 kClearCharCode = 27 kLeftArrowCharCode = 28 kRightArrowCharCode = 29 kUpArrowCharCode = 30 kDownArrowCharCode = 31 kSpaceCharCode = 32 kDeleteCharCode = 127 kBulletCharCode = 165 kNonBreakingSpaceCharCode = 202 kShiftUnicode = 0x21E7 kControlUnicode = 0x2303 kOptionUnicode = 0x2325 kCommandUnicode = 0x2318 kPencilUnicode = 0x270E kCheckUnicode = 0x2713 kDiamondUnicode = 0x25C6 kBulletUnicode = 0x2022 kAppleLogoUnicode = 0xF8FF networkEvt = 10 driverEvt = 11 app1Evt = 12 app2Evt = 13 app3Evt = 14 app4Evt = 15 networkMask = 0x0400 driverMask = 0x0800 app1Mask = 0x1000 app2Mask = 0x2000 app3Mask = 0x4000 app4Mask = 0x8000 --- NEW FILE: Evt.py --- from _Evt import * --- NEW FILE: File.py --- from _File import * --- NEW FILE: Files.py --- # Generated from 'Files.h' def FOUR_CHAR_CODE(x): return x true = True false = False fsCurPerm = 0x00 fsRdPerm = 0x01 fsWrPerm = 0x02 fsRdWrPerm = 0x03 fsRdWrShPerm = 0x04 fsRdDenyPerm = 0x10 fsWrDenyPerm = 0x20 fsRtParID = 1 fsRtDirID = 2 fsAtMark = 0 fsFromStart = 1 fsFromLEOF = 2 fsFromMark = 3 pleaseCacheBit = 4 pleaseCacheMask = 0x0010 noCacheBit = 5 noCacheMask = 0x0020 rdVerifyBit = 6 rdVerifyMask = 0x0040 rdVerify = 64 forceReadBit = 6 forceReadMask = 0x0040 newLineBit = 7 newLineMask = 0x0080 newLineCharMask = 0xFF00 fsSBPartialName = 1 fsSBFullName = 2 fsSBFlAttrib = 4 fsSBFlFndrInfo = 8 fsSBFlLgLen = 32 fsSBFlPyLen = 64 fsSBFlRLgLen = 128 fsSBFlRPyLen = 256 fsSBFlCrDat = 512 fsSBFlMdDat = 1024 fsSBFlBkDat = 2048 fsSBFlXFndrInfo = 4096 fsSBFlParID = 8192 fsSBNegate = 16384 fsSBDrUsrWds = 8 fsSBDrNmFls = 16 fsSBDrCrDat = 512 fsSBDrMdDat = 1024 fsSBDrBkDat = 2048 fsSBDrFndrInfo = 4096 fsSBDrParID = 8192 fsSBPartialNameBit = 0 fsSBFullNameBit = 1 fsSBFlAttribBit = 2 fsSBFlFndrInfoBit = 3 fsSBFlLgLenBit = 5 fsSBFlPyLenBit = 6 fsSBFlRLgLenBit = 7 fsSBFlRPyLenBit = 8 fsSBFlCrDatBit = 9 fsSBFlMdDatBit = 10 fsSBFlBkDatBit = 11 fsSBFlXFndrInfoBit = 12 fsSBFlParIDBit = 13 fsSBNegateBit = 14 fsSBDrUsrWdsBit = 3 fsSBDrNmFlsBit = 4 fsSBDrCrDatBit = 9 fsSBDrMdDatBit = 10 fsSBDrBkDatBit = 11 fsSBDrFndrInfoBit = 12 fsSBDrParIDBit = 13 bLimitFCBs = 31 bLocalWList = 30 bNoMiniFndr = 29 bNoVNEdit = 28 bNoLclSync = 27 bTrshOffLine = 26 bNoSwitchTo = 25 bDontShareIt = 21 bNoDeskItems = 20 bNoBootBlks = 19 bAccessCntl = 18 bNoSysDir = 17 bHasExtFSVol = 16 bHasOpenDeny = 15 bHasCopyFile = 14 bHasMoveRename = 13 bHasDesktopMgr = 12 bHasShortName = 11 bHasFolderLock = 10 bHasPersonalAccessPrivileges = 9 bHasUserGroupList = 8 bHasCatSearch = 7 bHasFileIDs = 6 bHasBTreeMgr = 5 bHasBlankAccessPrivileges = 4 bSupportsAsyncRequests = 3 bSupportsTrashVolumeCache = 2 bIsEjectable = 0 bSupportsHFSPlusAPIs = 1 bSupportsFSCatalogSearch = 2 bSupportsFSExchangeObjects = 3 bSupports2TBFiles = 4 bSupportsLongNames = 5 bSupportsMultiScriptNames = 6 bSupportsNamedForks = 7 bSupportsSubtreeIterators = 8 bL2PCanMapFileBlocks = 9 bParentModDateChanges = 10 bAncestorModDateChanges = 11 bSupportsSymbolicLinks = 13 bIsAutoMounted = 14 bAllowCDiDataHandler = 17 kLargeIcon = 1 kLarge4BitIcon = 2 kLarge8BitIcon = 3 kSmallIcon = 4 kSmall4BitIcon = 5 kSmall8BitIcon = 6 kicnsIconFamily = 239 kLargeIconSize = 256 kLarge4BitIconSize = 512 kLarge8BitIconSize = 1024 kSmallIconSize = 64 kSmall4BitIconSize = 128 kSmall8BitIconSize = 256 kWidePosOffsetBit = 8 kUseWidePositioning = (1 << kWidePosOffsetBit) kMaximumBlocksIn4GB = 0x007FFFFF fsUnixPriv = 1 kNoUserAuthentication = 1 kPassword = 2 kEncryptPassword = 3 kTwoWayEncryptPassword = 6 kOwnerID2Name = 1 kGroupID2Name = 2 kOwnerName2ID = 3 kGroupName2ID = 4 kReturnNextUser = 1 kReturnNextGroup = 2 kReturnNextUG = 3 kVCBFlagsIdleFlushBit = 3 kVCBFlagsIdleFlushMask = 0x0008 kVCBFlagsHFSPlusAPIsBit = 4 kVCBFlagsHFSPlusAPIsMask = 0x0010 kVCBFlagsHardwareGoneBit = 5 kVCBFlagsHardwareGoneMask = 0x0020 kVCBFlagsVolumeDirtyBit = 15 kVCBFlagsVolumeDirtyMask = 0x8000 kioVAtrbDefaultVolumeBit = 5 kioVAtrbDefaultVolumeMask = 0x0020 kioVAtrbFilesOpenBit = 6 kioVAtrbFilesOpenMask = 0x0040 kioVAtrbHardwareLockedBit = 7 kioVAtrbHardwareLockedMask = 0x0080 kioVAtrbSoftwareLockedBit = 15 kioVAtrbSoftwareLockedMask = 0x8000 kioFlAttribLockedBit = 0 kioFlAttribLockedMask = 0x01 kioFlAttribResOpenBit = 2 kioFlAttribResOpenMask = 0x04 kioFlAttribDataOpenBit = 3 kioFlAttribDataOpenMask = 0x08 kioFlAttribDirBit = 4 kioFlAttribDirMask = 0x10 ioDirFlg = 4 ioDirMask = 0x10 kioFlAttribCopyProtBit = 6 kioFlAttribCopyProtMask = 0x40 kioFlAttribFileOpenBit = 7 kioFlAttribFileOpenMask = 0x80 kioFlAttribInSharedBit = 2 kioFlAttribInSharedMask = 0x04 kioFlAttribMountedBit = 3 kioFlAttribMountedMask = 0x08 kioFlAttribSharePointBit = 5 kioFlAttribSharePointMask = 0x20 kioFCBWriteBit = 8 kioFCBWriteMask = 0x0100 kioFCBResourceBit = 9 kioFCBResourceMask = 0x0200 kioFCBWriteLockedBit = 10 kioFCBWriteLockedMask = 0x0400 kioFCBLargeFileBit = 11 kioFCBLargeFileMask = 0x0800 kioFCBSharedWriteBit = 12 kioFCBSharedWriteMask = 0x1000 kioFCBFileLockedBit = 13 kioFCBFileLockedMask = 0x2000 kioFCBOwnClumpBit = 14 kioFCBOwnClumpMask = 0x4000 kioFCBModifiedBit = 15 kioFCBModifiedMask = 0x8000 kioACUserNoSeeFolderBit = 0 kioACUserNoSeeFolderMask = 0x01 kioACUserNoSeeFilesBit = 1 kioACUserNoSeeFilesMask = 0x02 kioACUserNoMakeChangesBit = 2 kioACUserNoMakeChangesMask = 0x04 kioACUserNotOwnerBit = 7 kioACUserNotOwnerMask = 0x80 kioACAccessOwnerBit = 31 # kioACAccessOwnerMask = (long)0x80000000 kioACAccessBlankAccessBit = 28 kioACAccessBlankAccessMask = 0x10000000 kioACAccessUserWriteBit = 26 kioACAccessUserWriteMask = 0x04000000 kioACAccessUserReadBit = 25 kioACAccessUserReadMask = 0x02000000 kioACAccessUserSearchBit = 24 kioACAccessUserSearchMask = 0x01000000 kioACAccessEveryoneWriteBit = 18 kioACAccessEveryoneWriteMask = 0x00040000 kioACAccessEveryoneReadBit = 17 kioACAccessEveryoneReadMask = 0x00020000 kioACAccessEveryoneSearchBit = 16 kioACAccessEveryoneSearchMask = 0x00010000 kioACAccessGroupWriteBit = 10 kioACAccessGroupWriteMask = 0x00000400 kioACAccessGroupReadBit = 9 kioACAccessGroupReadMask = 0x00000200 kioACAccessGroupSearchBit = 8 kioACAccessGroupSearchMask = 0x00000100 kioACAccessOwnerWriteBit = 2 kioACAccessOwnerWriteMask = 0x00000004 kioACAccessOwnerReadBit = 1 kioACAccessOwnerReadMask = 0x00000002 kioACAccessOwnerSearchBit = 0 kioACAccessOwnerSearchMask = 0x00000001 kfullPrivileges = 0x00070007 kownerPrivileges = 0x00000007 knoUser = 0 kadministratorUser = 1 knoGroup = 0 AppleShareMediaType = FOUR_CHAR_CODE('afpm') volMountNoLoginMsgFlagBit = 0 volMountNoLoginMsgFlagMask = 0x0001 volMountExtendedFlagsBit = 7 volMountExtendedFlagsMask = 0x0080 volMountInteractBit = 15 volMountInteractMask = 0x8000 volMountChangedBit = 14 volMountChangedMask = 0x4000 volMountFSReservedMask = 0x00FF volMountSysReservedMask = 0xFF00 kAFPExtendedFlagsAlternateAddressMask = 1 kAFPTagTypeIP = 0x01 kAFPTagTypeIPPort = 0x02 kAFPTagTypeDDP = 0x03 kAFPTagTypeDNS = 0x04 kAFPTagLengthIP = 0x06 kAFPTagLengthIPPort = 0x08 kAFPTagLengthDDP = 0x06 kFSInvalidVolumeRefNum = 0 kFSCatInfoNone = 0x00000000 kFSCatInfoTextEncoding = 0x00000001 kFSCatInfoNodeFlags = 0x00000002 kFSCatInfoVolume = 0x00000004 kFSCatInfoParentDirID = 0x00000008 kFSCatInfoNodeID = 0x00000010 kFSCatInfoCreateDate = 0x00000020 kFSCatInfoContentMod = 0x00000040 kFSCatInfoAttrMod = 0x00000080 kFSCatInfoAccessDate = 0x00000100 kFSCatInfoBackupDate = 0x00000200 kFSCatInfoPermissions = 0x00000400 kFSCatInfoFinderInfo = 0x00000800 kFSCatInfoFinderXInfo = 0x00001000 kFSCatInfoValence = 0x00002000 kFSCatInfoDataSizes = 0x00004000 kFSCatInfoRsrcSizes = 0x00008000 kFSCatInfoSharingFlags = 0x00010000 kFSCatInfoUserPrivs = 0x00020000 kFSCatInfoUserAccess = 0x00080000 kFSCatInfoAllDates = 0x000003E0 kFSCatInfoGettableInfo = 0x0003FFFF kFSCatInfoSettableInfo = 0x00001FE3 # kFSCatInfoReserved = (long)0xFFFC0000 kFSNodeLockedBit = 0 kFSNodeLockedMask = 0x0001 kFSNodeResOpenBit = 2 kFSNodeResOpenMask = 0x0004 kFSNodeDataOpenBit = 3 kFSNodeDataOpenMask = 0x0008 kFSNodeIsDirectoryBit = 4 kFSNodeIsDirectoryMask = 0x0010 kFSNodeCopyProtectBit = 6 kFSNodeCopyProtectMask = 0x0040 kFSNodeForkOpenBit = 7 kFSNodeForkOpenMask = 0x0080 kFSNodeInSharedBit = 2 kFSNodeInSharedMask = 0x0004 kFSNodeIsMountedBit = 3 kFSNodeIsMountedMask = 0x0008 kFSNodeIsSharePointBit = 5 kFSNodeIsSharePointMask = 0x0020 kFSIterateFlat = 0 kFSIterateSubtree = 1 kFSIterateDelete = 2 # kFSIterateReserved = (long)0xFFFFFFFC fsSBNodeID = 0x00008000 fsSBAttributeModDate = 0x00010000 fsSBAccessDate = 0x00020000 fsSBPermissions = 0x00040000 fsSBNodeIDBit = 15 fsSBAttributeModDateBit = 16 fsSBAccessDateBit = 17 fsSBPermissionsBit = 18 kFSAllocDefaultFlags = 0x0000 kFSAllocAllOrNothingMask = 0x0001 kFSAllocContiguousMask = 0x0002 kFSAllocNoRoundUpMask = 0x0004 kFSAllocReservedMask = 0xFFF8 kFSVolInfoNone = 0x0000 kFSVolInfoCreateDate = 0x0001 kFSVolInfoModDate = 0x0002 kFSVolInfoBackupDate = 0x0004 kFSVolInfoCheckedDate = 0x0008 kFSVolInfoFileCount = 0x0010 kFSVolInfoDirCount = 0x0020 kFSVolInfoSizes = 0x0040 kFSVolInfoBlocks = 0x0080 kFSVolInfoNextAlloc = 0x0100 kFSVolInfoRsrcClump = 0x0200 kFSVolInfoDataClump = 0x0400 kFSVolInfoNextID = 0x0800 kFSVolInfoFinderInfo = 0x1000 kFSVolInfoFlags = 0x2000 kFSVolInfoFSInfo = 0x4000 kFSVolInfoDriveInfo = 0x8000 kFSVolInfoGettableInfo = 0xFFFF kFSVolInfoSettableInfo = 0x3004 kFSVolFlagDefaultVolumeBit = 5 kFSVolFlagDefaultVolumeMask = 0x0020 kFSVolFlagFilesOpenBit = 6 kFSVolFlagFilesOpenMask = 0x0040 kFSVolFlagHardwareLockedBit = 7 kFSVolFlagHardwareLockedMask = 0x0080 kFSVolFlagSoftwareLockedBit = 15 kFSVolFlagSoftwareLockedMask = 0x8000 kFNDirectoryModifiedMessage = 1 kFNNoImplicitAllSubscription = (1 << 0) rAliasType = FOUR_CHAR_CODE('alis') kARMMountVol = 0x00000001 kARMNoUI = 0x00000002 kARMMultVols = 0x00000008 kARMSearch = 0x00000100 kARMSearchMore = 0x00000200 kARMSearchRelFirst = 0x00000400 asiZoneName = -3 asiServerName = -2 asiVolumeName = -1 asiAliasName = 0 asiParentName = 1 kResolveAliasFileNoUI = 0x00000001 kClippingCreator = FOUR_CHAR_CODE('drag') kClippingPictureType = FOUR_CHAR_CODE('clpp') kClippingTextType = FOUR_CHAR_CODE('clpt') kClippingSoundType = FOUR_CHAR_CODE('clps') kClippingUnknownType = FOUR_CHAR_CODE('clpu') kInternetLocationCreator = FOUR_CHAR_CODE('drag') kInternetLocationHTTP = FOUR_CHAR_CODE('ilht') kInternetLocationFTP = FOUR_CHAR_CODE('ilft') kInternetLocationFile = FOUR_CHAR_CODE('ilfi') kInternetLocationMail = FOUR_CHAR_CODE('ilma') kInternetLocationNNTP = FOUR_CHAR_CODE('ilnw') kInternetLocationAFP = FOUR_CHAR_CODE('ilaf') kInternetLocationAppleTalk = FOUR_CHAR_CODE('ilat') kInternetLocationNSL = FOUR_CHAR_CODE('ilns') kInternetLocationGeneric = FOUR_CHAR_CODE('ilge') kCustomIconResource = -16455 kCustomBadgeResourceType = FOUR_CHAR_CODE('badg') kCustomBadgeResourceID = kCustomIconResource kCustomBadgeResourceVersion = 0 # kSystemFolderType = 'macs'. kRoutingResourceType = FOUR_CHAR_CODE('rout') kRoutingResourceID = 0 kContainerFolderAliasType = FOUR_CHAR_CODE('fdrp') kContainerTrashAliasType = FOUR_CHAR_CODE('trsh') kContainerHardDiskAliasType = FOUR_CHAR_CODE('hdsk') kContainerFloppyAliasType = FOUR_CHAR_CODE('flpy') kContainerServerAliasType = FOUR_CHAR_CODE('srvr') kApplicationAliasType = FOUR_CHAR_CODE('adrp') kContainerAliasType = FOUR_CHAR_CODE('drop') kDesktopPrinterAliasType = FOUR_CHAR_CODE('dtpa') kContainerCDROMAliasType = FOUR_CHAR_CODE('cddr') kApplicationCPAliasType = FOUR_CHAR_CODE('acdp') kApplicationDAAliasType = FOUR_CHAR_CODE('addp') kPackageAliasType = FOUR_CHAR_CODE('fpka') kAppPackageAliasType = FOUR_CHAR_CODE('fapa') kSystemFolderAliasType = FOUR_CHAR_CODE('fasy') kAppleMenuFolderAliasType = FOUR_CHAR_CODE('faam') kStartupFolderAliasType = FOUR_CHAR_CODE('fast') kPrintMonitorDocsFolderAliasType = FOUR_CHAR_CODE('fapn') kPreferencesFolderAliasType = FOUR_CHAR_CODE('fapf') kControlPanelFolderAliasType = FOUR_CHAR_CODE('fact') kExtensionFolderAliasType = FOUR_CHAR_CODE('faex') kExportedFolderAliasType = FOUR_CHAR_CODE('faet') kDropFolderAliasType = FOUR_CHAR_CODE('fadr') kSharedFolderAliasType = FOUR_CHAR_CODE('fash') kMountedFolderAliasType = FOUR_CHAR_CODE('famn') kIsOnDesk = 0x0001 kColor = 0x000E kIsShared = 0x0040 kHasNoINITs = 0x0080 kHasBeenInited = 0x0100 kHasCustomIcon = 0x0400 kIsStationery = 0x0800 kNameLocked = 0x1000 kHasBundle = 0x2000 kIsInvisible = 0x4000 kIsAlias = 0x8000 fOnDesk = kIsOnDesk fHasBundle = kHasBundle fInvisible = kIsInvisible fTrash = -3 fDesktop = -2 fDisk = 0 kIsStationary = kIsStationery kExtendedFlagsAreInvalid = 0x8000 kExtendedFlagHasCustomBadge = 0x0100 kExtendedFlagHasRoutingInfo = 0x0004 kFirstMagicBusyFiletype = FOUR_CHAR_CODE('bzy ') kLastMagicBusyFiletype = FOUR_CHAR_CODE('bzy?') kMagicBusyCreationDate = 0x4F3AFDB0 --- NEW FILE: Fm.py --- from _Fm import * --- NEW FILE: Folder.py --- from _Folder import * --- NEW FILE: Folders.py --- # Generated from 'Folders.h' def FOUR_CHAR_CODE(x): return x true = True false = False kOnSystemDisk = -32768L kOnAppropriateDisk = -32767 kSystemDomain = -32766 kLocalDomain = -32765 kNetworkDomain = -32764 kUserDomain = -32763 kClassicDomain = -32762 kCreateFolder = true kDontCreateFolder = false kSystemFolderType = FOUR_CHAR_CODE('macs') kDesktopFolderType = FOUR_CHAR_CODE('desk') kSystemDesktopFolderType = FOUR_CHAR_CODE('sdsk') kTrashFolderType = FOUR_CHAR_CODE('trsh') kSystemTrashFolderType = FOUR_CHAR_CODE('strs') kWhereToEmptyTrashFolderType = FOUR_CHAR_CODE('empt') kPrintMonitorDocsFolderType = FOUR_CHAR_CODE('prnt') kStartupFolderType = FOUR_CHAR_CODE('strt') kShutdownFolderType = FOUR_CHAR_CODE('shdf') kAppleMenuFolderType = FOUR_CHAR_CODE('amnu') kControlPanelFolderType = FOUR_CHAR_CODE('ctrl') kSystemControlPanelFolderType = FOUR_CHAR_CODE('sctl') kExtensionFolderType = FOUR_CHAR_CODE('extn') kFontsFolderType = FOUR_CHAR_CODE('font') kPreferencesFolderType = FOUR_CHAR_CODE('pref') kSystemPreferencesFolderType = FOUR_CHAR_CODE('sprf') kTemporaryFolderType = FOUR_CHAR_CODE('temp') kExtensionDisabledFolderType = FOUR_CHAR_CODE('extD') kControlPanelDisabledFolderType = FOUR_CHAR_CODE('ctrD') kSystemExtensionDisabledFolderType = FOUR_CHAR_CODE('macD') kStartupItemsDisabledFolderType = FOUR_CHAR_CODE('strD') kShutdownItemsDisabledFolderType = FOUR_CHAR_CODE('shdD') kApplicationsFolderType = FOUR_CHAR_CODE('apps') kDocumentsFolderType = FOUR_CHAR_CODE('docs') kVolumeRootFolderType = FOUR_CHAR_CODE('root') kChewableItemsFolderType = FOUR_CHAR_CODE('flnt') kApplicationSupportFolderType = FOUR_CHAR_CODE('asup') kTextEncodingsFolderType = FOUR_CHAR_CODE('\xc4tex') kStationeryFolderType = FOUR_CHAR_CODE('odst') kOpenDocFolderType = FOUR_CHAR_CODE('odod') kOpenDocShellPlugInsFolderType = FOUR_CHAR_CODE('odsp') kEditorsFolderType = FOUR_CHAR_CODE('oded') kOpenDocEditorsFolderType = FOUR_CHAR_CODE('\xc4odf') kOpenDocLibrariesFolderType = FOUR_CHAR_CODE('odlb') kGenEditorsFolderType = FOUR_CHAR_CODE('\xc4edi') kHelpFolderType = FOUR_CHAR_CODE('\xc4hlp') kInternetPlugInFolderType = FOUR_CHAR_CODE('\xc4net') kModemScriptsFolderType = FOUR_CHAR_CODE('\xc4mod') kPrinterDescriptionFolderType = FOUR_CHAR_CODE('ppdf') kPrinterDriverFolderType = FOUR_CHAR_CODE('\xc4prd') kScriptingAdditionsFolderType = FOUR_CHAR_CODE('\xc4scr') kSharedLibrariesFolderType = FOUR_CHAR_CODE('\xc4lib') kVoicesFolderType = FOUR_CHAR_CODE('fvoc') kControlStripModulesFolderType = FOUR_CHAR_CODE('sdev') kAssistantsFolderType = FOUR_CHAR_CODE('ast\xc4') kUtilitiesFolderType = FOUR_CHAR_CODE('uti\xc4') kAppleExtrasFolderType = FOUR_CHAR_CODE('aex\xc4') kContextualMenuItemsFolderType = FOUR_CHAR_CODE('cmnu') kMacOSReadMesFolderType = FOUR_CHAR_CODE('mor\xc4') kALMModulesFolderType = FOUR_CHAR_CODE('walk') kALMPreferencesFolderType = FOUR_CHAR_CODE('trip') kALMLocationsFolderType = FOUR_CHAR_CODE('fall') kColorSyncProfilesFolderType = FOUR_CHAR_CODE('prof') kThemesFolderType = FOUR_CHAR_CODE('thme') kFavoritesFolderType = FOUR_CHAR_CODE('favs') kInternetFolderType = FOUR_CHAR_CODE('int\xc4') kAppearanceFolderType = FOUR_CHAR_CODE('appr') kSoundSetsFolderType = FOUR_CHAR_CODE('snds') kDesktopPicturesFolderType = FOUR_CHAR_CODE('dtp\xc4') kInternetSearchSitesFolderType = FOUR_CHAR_CODE('issf') kFindSupportFolderType = FOUR_CHAR_CODE('fnds') kFindByContentFolderType = FOUR_CHAR_CODE('fbcf') kInstallerLogsFolderType = FOUR_CHAR_CODE('ilgf') kScriptsFolderType = FOUR_CHAR_CODE('scr\xc4') kFolderActionsFolderType = FOUR_CHAR_CODE('fasf') kLauncherItemsFolderType = FOUR_CHAR_CODE('laun') kRecentApplicationsFolderType = FOUR_CHAR_CODE('rapp') kRecentDocumentsFolderType = FOUR_CHAR_CODE('rdoc') kRecentServersFolderType = FOUR_CHAR_CODE('rsvr') kSpeakableItemsFolderType = FOUR_CHAR_CODE('spki') kKeychainFolderType = FOUR_CHAR_CODE('kchn') kQuickTimeExtensionsFolderType = FOUR_CHAR_CODE('qtex') kDisplayExtensionsFolderType = FOUR_CHAR_CODE('dspl') kMultiprocessingFolderType = FOUR_CHAR_CODE('mpxf') kPrintingPlugInsFolderType = FOUR_CHAR_CODE('pplg') kDomainTopLevelFolderType = FOUR_CHAR_CODE('dtop') kDomainLibraryFolderType = FOUR_CHAR_CODE('dlib') kColorSyncFolderType = FOUR_CHAR_CODE('sync') kColorSyncCMMFolderType = FOUR_CHAR_CODE('ccmm') kColorSyncScriptingFolderType = FOUR_CHAR_CODE('cscr') kPrintersFolderType = FOUR_CHAR_CODE('impr') kSpeechFolderType = FOUR_CHAR_CODE('spch') kCarbonLibraryFolderType = FOUR_CHAR_CODE('carb') kDocumentationFolderType = FOUR_CHAR_CODE('info') kDeveloperDocsFolderType = FOUR_CHAR_CODE('ddoc') kDeveloperHelpFolderType = FOUR_CHAR_CODE('devh') kISSDownloadsFolderType = FOUR_CHAR_CODE('issd') kUserSpecificTmpFolderType = FOUR_CHAR_CODE('utmp') kCachedDataFolderType = FOUR_CHAR_CODE('cach') kFrameworksFolderType = FOUR_CHAR_CODE('fram') kPrivateFrameworksFolderType = FOUR_CHAR_CODE('pfrm') kClassicDesktopFolderType = FOUR_CHAR_CODE('sdsk') kDeveloperFolderType = FOUR_CHAR_CODE('devf') kSystemSoundsFolderType = FOUR_CHAR_CODE('ssnd') kComponentsFolderType = FOUR_CHAR_CODE('cmpd') kQuickTimeComponentsFolderType = FOUR_CHAR_CODE('wcmp') kCoreServicesFolderType = FOUR_CHAR_CODE('csrv') kPictureDocumentsFolderType = FOUR_CHAR_CODE('pdoc') kMovieDocumentsFolderType = FOUR_CHAR_CODE('mdoc') kMusicDocumentsFolderType = FOUR_CHAR_CODE('\xb5doc') kInternetSitesFolderType = FOUR_CHAR_CODE('site') kPublicFolderType = FOUR_CHAR_CODE('pubb') kAudioSupportFolderType = FOUR_CHAR_CODE('adio') kAudioSoundsFolderType = FOUR_CHAR_CODE('asnd') kAudioSoundBanksFolderType = FOUR_CHAR_CODE('bank') kAudioAlertSoundsFolderType = FOUR_CHAR_CODE('alrt') kAudioPlugInsFolderType = FOUR_CHAR_CODE('aplg') kAudioComponentsFolderType = FOUR_CHAR_CODE('acmp') kKernelExtensionsFolderType = FOUR_CHAR_CODE('kext') kDirectoryServicesFolderType = FOUR_CHAR_CODE('dsrv') kDirectoryServicesPlugInsFolderType = FOUR_CHAR_CODE('dplg') kInstallerReceiptsFolderType = FOUR_CHAR_CODE('rcpt') kFileSystemSupportFolderType = FOUR_CHAR_CODE('fsys') kAppleShareSupportFolderType = FOUR_CHAR_CODE('shar') kAppleShareAuthenticationFolderType = FOUR_CHAR_CODE('auth') kMIDIDriversFolderType = FOUR_CHAR_CODE('midi') kLocalesFolderType = FOUR_CHAR_CODE('\xc4loc') kFindByContentPluginsFolderType = FOUR_CHAR_CODE('fbcp') kUsersFolderType = FOUR_CHAR_CODE('usrs') kCurrentUserFolderType = FOUR_CHAR_CODE('cusr') kCurrentUserRemoteFolderLocation = FOUR_CHAR_CODE('rusf') kCurrentUserRemoteFolderType = FOUR_CHAR_CODE('rusr') kSharedUserDataFolderType = FOUR_CHAR_CODE('sdat') kVolumeSettingsFolderType = FOUR_CHAR_CODE('vsfd') kAppleshareAutomountServerAliasesFolderType = FOUR_CHAR_CODE('srv\xc4') kPreMacOS91ApplicationsFolderType = FOUR_CHAR_CODE('\x8cpps') kPreMacOS91InstallerLogsFolderType = FOUR_CHAR_CODE('\x94lgf') kPreMacOS91AssistantsFolderType = FOUR_CHAR_CODE('\x8cst\xc4') kPreMacOS91UtilitiesFolderType = FOUR_CHAR_CODE('\x9fti\xc4') kPreMacOS91AppleExtrasFolderType = FOUR_CHAR_CODE('\x8cex\xc4') kPreMacOS91MacOSReadMesFolderType = FOUR_CHAR_CODE('\xb5or\xc4') kPreMacOS91InternetFolderType = FOUR_CHAR_CODE('\x94nt\xc4') kPreMacOS91AutomountedServersFolderType = FOUR_CHAR_CODE('\xa7rv\xc4') kPreMacOS91StationeryFolderType = FOUR_CHAR_CODE('\xbfdst') kCreateFolderAtBoot = 0x00000002 kCreateFolderAtBootBit = 1 kFolderCreatedInvisible = 0x00000004 kFolderCreatedInvisibleBit = 2 kFolderCreatedNameLocked = 0x00000008 kFolderCreatedNameLockedBit = 3 kFolderCreatedAdminPrivs = 0x00000010 kFolderCreatedAdminPrivsBit = 4 kFolderInUserFolder = 0x00000020 kFolderInUserFolderBit = 5 kFolderTrackedByAlias = 0x00000040 kFolderTrackedByAliasBit = 6 kFolderInRemoteUserFolderIfAvailable = 0x00000080 kFolderInRemoteUserFolderIfAvailableBit = 7 kFolderNeverMatchedInIdentifyFolder = 0x00000100 kFolderNeverMatchedInIdentifyFolderBit = 8 kFolderMustStayOnSameVolume = 0x00000200 kFolderMustStayOnSameVolumeBit = 9 kFolderManagerFolderInMacOS9FolderIfMacOSXIsInstalledMask = 0x00000400 kFolderManagerFolderInMacOS9FolderIfMacOSXIsInstalledBit = 10 kFolderInLocalOrRemoteUserFolder = kFolderInUserFolder | kFolderInRemoteUserFolderIfAvailable kRelativeFolder = FOUR_CHAR_CODE('relf') kSpecialFolder = FOUR_CHAR_CODE('spcf') kBlessedFolder = FOUR_CHAR_CODE('blsf') kRootFolder = FOUR_CHAR_CODE('rotf') kCurrentUserFolderLocation = FOUR_CHAR_CODE('cusf') kFindFolderRedirectionFlagUseDistinctUserFoldersBit = 0 kFindFolderRedirectionFlagUseGivenVRefAndDirIDAsUserFolderBit = 1 kFindFolderRedirectionFlagsUseGivenVRefNumAndDirIDAsRemoteUserFolderBit = 2 kFolderManagerUserRedirectionGlobalsCurrentVersion = 1 kFindFolderExtendedFlagsDoNotFollowAliasesBit = 0 kFindFolderExtendedFlagsDoNotUseUserFolderBit = 1 kFindFolderExtendedFlagsUseOtherUserRecord = 0x01000000 kFolderManagerNotificationMessageUserLogIn = FOUR_CHAR_CODE('log+') kFolderManagerNotificationMessagePreUserLogIn = FOUR_CHAR_CODE('logj') kFolderManagerNotificationMessageUserLogOut = FOUR_CHAR_CODE('log-') kFolderManagerNotificationMessagePostUserLogOut = FOUR_CHAR_CODE('logp') kFolderManagerNotificationDiscardCachedData = FOUR_CHAR_CODE('dche') kFolderManagerNotificationMessageLoginStartup = FOUR_CHAR_CODE('stup') kDoNotRemoveWhenCurrentApplicationQuitsBit = 0 kDoNotRemoveWheCurrentApplicationQuitsBit = kDoNotRemoveWhenCurrentApplicationQuitsBit kStopIfAnyNotificationProcReturnsErrorBit = 31 --- NEW FILE: Fonts.py --- # Generated from 'Fonts.h' def FOUR_CHAR_CODE(x): return x kNilOptions = 0 systemFont = 0 applFont = 1 kFMDefaultOptions = kNilOptions kFMDefaultActivationContext = kFMDefaultOptions kFMGlobalActivationContext = 0x00000001 kFMLocalActivationContext = kFMDefaultActivationContext kFMDefaultIterationScope = kFMDefaultOptions kFMGlobalIterationScope = 0x00000001 kFMLocalIterationScope = kFMDefaultIterationScope kPlatformDefaultGuiFontID = applFont kPlatformDefaultGuiFontID = -1 commandMark = 17 checkMark = 18 diamondMark = 19 appleMark = 20 propFont = 36864L prpFntH = 36865L prpFntW = 36866L prpFntHW = 36867L fixedFont = 45056L fxdFntH = 45057L fxdFntW = 45058L fxdFntHW = 45059L fontWid = 44208L kFMUseGlobalScopeOption = 0x00000001 kFontIDNewYork = 2 kFontIDGeneva = 3 kFontIDMonaco = 4 kFontIDVenice = 5 kFontIDLondon = 6 kFontIDAthens = 7 kFontIDSanFrancisco = 8 kFontIDToronto = 9 kFontIDCairo = 11 kFontIDLosAngeles = 12 kFontIDTimes = 20 kFontIDHelvetica = 21 kFontIDCourier = 22 kFontIDSymbol = 23 kFontIDMobile = 24 newYork = kFontIDNewYork geneva = kFontIDGeneva monaco = kFontIDMonaco venice = kFontIDVenice london = kFontIDLondon athens = kFontIDAthens sanFran = kFontIDSanFrancisco toronto = kFontIDToronto cairo = kFontIDCairo losAngeles = kFontIDLosAngeles times = kFontIDTimes helvetica = kFontIDHelvetica courier = kFontIDCourier symbol = kFontIDSymbol mobile = kFontIDMobile --- NEW FILE: Help.py --- from _Help import * --- NEW FILE: IBCarbon.py --- from _IBCarbon import * --- NEW FILE: IBCarbonRuntime.py --- # Generated from 'IBCarbonRuntime.h' kIBCarbonRuntimeCantFindNibFile = -10960 kIBCarbonRuntimeObjectNotOfRequestedType = -10961 kIBCarbonRuntimeCantFindObject = -10962 --- NEW FILE: Icn.py --- from _Icn import * --- NEW FILE: Icons.py --- # Generated from 'Icons.h' def FOUR_CHAR_CODE(x): return x from Carbon.Files import * kGenericDocumentIconResource = -4000 kGenericStationeryIconResource = -3985 kGenericEditionFileIconResource = -3989 kGenericApplicationIconResource = -3996 kGenericDeskAccessoryIconResource = -3991 kGenericFolderIconResource = -3999 kPrivateFolderIconResource = -3994 kFloppyIconResource = -3998 kTrashIconResource = -3993 kGenericRAMDiskIconResource = -3988 kGenericCDROMIconResource = -3987 kDesktopIconResource = -3992 kOpenFolderIconResource = -3997 kGenericHardDiskIconResource = -3995 kGenericFileServerIconResource = -3972 kGenericSuitcaseIconResource = -3970 kGenericMoverObjectIconResource = -3969 kGenericPreferencesIconResource = -3971 kGenericQueryDocumentIconResource = -16506 kGenericExtensionIconResource = -16415 kSystemFolderIconResource = -3983 kHelpIconResource = -20271 kAppleMenuFolderIconResource = -3982 genericDocumentIconResource = kGenericDocumentIconResource genericStationeryIconResource = kGenericStationeryIconResource genericEditionFileIconResource = kGenericEditionFileIconResource genericApplicationIconResource = kGenericApplicationIconResource genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource genericFolderIconResource = kGenericFolderIconResource privateFolderIconResource = kPrivateFolderIconResource floppyIconResource = kFloppyIconResource trashIconResource = kTrashIconResource genericRAMDiskIconResource = kGenericRAMDiskIconResource genericCDROMIconResource = kGenericCDROMIconResource desktopIconResource = kDesktopIconResource openFolderIconResource = kOpenFolderIconResource genericHardDiskIconResource = kGenericHardDiskIconResource genericFileServerIconResource = kGenericFileServerIconResource genericSuitcaseIconResource = kGenericSuitcaseIconResource genericMoverObjectIconResource = kGenericMoverObjectIconResource genericPreferencesIconResource = kGenericPreferencesIconResource genericQueryDocumentIconResource = kGenericQueryDocumentIconResource genericExtensionIconResource = kGenericExtensionIconResource systemFolderIconResource = kSystemFolderIconResource appleMenuFolderIconResource = kAppleMenuFolderIconResource kStartupFolderIconResource = -3981 kOwnedFolderIconResource = -3980 kDropFolderIconResource = -3979 kSharedFolderIconResource = -3978 kMountedFolderIconResource = -3977 kControlPanelFolderIconResource = -3976 kPrintMonitorFolderIconResource = -3975 kPreferencesFolderIconResource = -3974 kExtensionsFolderIconResource = -3973 kFontsFolderIconResource = -3968 kFullTrashIconResource = -3984 startupFolderIconResource = kStartupFolderIconResource ownedFolderIconResource = kOwnedFolderIconResource dropFolderIconResource = kDropFolderIconResource sharedFolderIconResource = kSharedFolderIconResource mountedFolderIconResource = kMountedFolderIconResource controlPanelFolderIconResource = kControlPanelFolderIconResource printMonitorFolderIconResource = kPrintMonitorFolderIconResource preferencesFolderIconResource = kPreferencesFolderIconResource extensionsFolderIconResource = kExtensionsFolderIconResource fontsFolderIconResource = kFontsFolderIconResource fullTrashIconResource = kFullTrashIconResource kThumbnail32BitData = FOUR_CHAR_CODE('it32') kThumbnail8BitMask = FOUR_CHAR_CODE('t8mk') kHuge1BitMask = FOUR_CHAR_CODE('ich#') kHuge4BitData = FOUR_CHAR_CODE('ich4') kHuge8BitData = FOUR_CHAR_CODE('ich8') kHuge32BitData = FOUR_CHAR_CODE('ih32') kHuge8BitMask = FOUR_CHAR_CODE('h8mk') kLarge1BitMask = FOUR_CHAR_CODE('ICN#') kLarge4BitData = FOUR_CHAR_CODE('icl4') kLarge8BitData = FOUR_CHAR_CODE('icl8') kLarge32BitData = FOUR_CHAR_CODE('il32') kLarge8BitMask = FOUR_CHAR_CODE('l8mk') kSmall1BitMask = FOUR_CHAR_CODE('ics#') kSmall4BitData = FOUR_CHAR_CODE('ics4') kSmall8BitData = FOUR_CHAR_CODE('ics8') kSmall32BitData = FOUR_CHAR_CODE('is32') kSmall8BitMask = FOUR_CHAR_CODE('s8mk') kMini1BitMask = FOUR_CHAR_CODE('icm#') kMini4BitData = FOUR_CHAR_CODE('icm4') kMini8BitData = FOUR_CHAR_CODE('icm8') kTileIconVariant = FOUR_CHAR_CODE('tile') kRolloverIconVariant = FOUR_CHAR_CODE('over') kDropIconVariant = FOUR_CHAR_CODE('drop') kOpenIconVariant = FOUR_CHAR_CODE('open') kOpenDropIconVariant = FOUR_CHAR_CODE('odrp') large1BitMask = kLarge1BitMask large4BitData = kLarge4BitData large8BitData = kLarge8BitData small1BitMask = kSmall1BitMask small4BitData = kSmall4BitData small8BitData = kSmall8BitData mini1BitMask = kMini1BitMask mini4BitData = kMini4BitData mini8BitData = kMini8BitData kAlignNone = 0x00 kAlignVerticalCenter = 0x01 kAlignTop = 0x02 kAlignBottom = 0x03 kAlignHorizontalCenter = 0x04 kAlignAbsoluteCenter = kAlignVerticalCenter | kAlignHorizontalCenter kAlignCenterTop = kAlignTop | kAlignHorizontalCenter kAlignCenterBottom = kAlignBottom | kAlignHorizontalCenter kAlignLeft = 0x08 kAlignCenterLeft = kAlignVerticalCenter | kAlignLeft kAlignTopLeft = kAlignTop | kAlignLeft kAlignBottomLeft = kAlignBottom | kAlignLeft kAlignRight = 0x0C kAlignCenterRight = kAlignVerticalCenter | kAlignRight kAlignTopRight = kAlignTop | kAlignRight kAlignBottomRight = kAlignBottom | kAlignRight atNone = kAlignNone atVerticalCenter = kAlignVerticalCenter atTop = kAlignTop atBottom = kAlignBottom atHorizontalCenter = kAlignHorizontalCenter atAbsoluteCenter = kAlignAbsoluteCenter atCenterTop = kAlignCenterTop atCenterBottom = kAlignCenterBottom atLeft = kAlignLeft atCenterLeft = kAlignCenterLeft atTopLeft = kAlignTopLeft atBottomLeft = kAlignBottomLeft atRight = kAlignRight atCenterRight = kAlignCenterRight atTopRight = kAlignTopRight atBottomRight = kAlignBottomRight kTransformNone = 0x00 kTransformDisabled = 0x01 kTransformOffline = 0x02 kTransformOpen = 0x03 kTransformLabel1 = 0x0100 kTransformLabel2 = 0x0200 kTransformLabel3 = 0x0300 kTransformLabel4 = 0x0400 kTransformLabel5 = 0x0500 kTransformLabel6 = 0x0600 kTransformLabel7 = 0x0700 kTransformSelected = 0x4000 kTransformSelectedDisabled = kTransformSelected | kTransformDisabled kTransformSelectedOffline = kTransformSelected | kTransformOffline kTransformSelectedOpen = kTransformSelected | kTransformOpen ttNone = kTransformNone ttDisabled = kTransformDisabled ttOffline = kTransformOffline ttOpen = kTransformOpen ttLabel1 = kTransformLabel1 ttLabel2 = kTransformLabel2 ttLabel3 = kTransformLabel3 ttLabel4 = kTransformLabel4 ttLabel5 = kTransformLabel5 ttLabel6 = kTransformLabel6 ttLabel7 = kTransformLabel7 ttSelected = kTransformSelected ttSelectedDisabled = kTransformSelectedDisabled ttSelectedOffline = kTransformSelectedOffline ttSelectedOpen = kTransformSelectedOpen kSelectorLarge1Bit = 0x00000001 kSelectorLarge4Bit = 0x00000002 kSelectorLarge8Bit = 0x00000004 kSelectorLarge32Bit = 0x00000008 kSelectorLarge8BitMask = 0x00000010 kSelectorSmall1Bit = 0x00000100 kSelectorSmall4Bit = 0x00000200 kSelectorSmall8Bit = 0x00000400 kSelectorSmall32Bit = 0x00000800 kSelectorSmall8BitMask = 0x00001000 kSelectorMini1Bit = 0x00010000 kSelectorMini4Bit = 0x00020000 kSelectorMini8Bit = 0x00040000 kSelectorHuge1Bit = 0x01000000 kSelectorHuge4Bit = 0x02000000 kSelectorHuge8Bit = 0x04000000 kSelectorHuge32Bit = 0x08000000 kSelectorHuge8BitMask = 0x10000000 kSelectorAllLargeData = 0x000000FF kSelectorAllSmallData = 0x0000FF00 kSelectorAllMiniData = 0x00FF0000 # kSelectorAllHugeData = (long)0xFF000000 kSelectorAll1BitData = kSelectorLarge1Bit | kSelectorSmall1Bit | kSelectorMini1Bit | kSelectorHuge1Bit kSelectorAll4BitData = kSelectorLarge4Bit | kSelectorSmall4Bit | kSelectorMini4Bit | kSelectorHuge4Bit kSelectorAll8BitData = kSelectorLarge8Bit | kSelectorSmall8Bit | kSelectorMini8Bit | kSelectorHuge8Bit kSelectorAll32BitData = kSelectorLarge32Bit | kSelectorSmall32Bit | kSelectorHuge32Bit # kSelectorAllAvailableData = (long)0xFFFFFFFF svLarge1Bit = kSelectorLarge1Bit svLarge4Bit = kSelectorLarge4Bit svLarge8Bit = kSelectorLarge8Bit svSmall1Bit = kSelectorSmall1Bit svSmall4Bit = kSelectorSmall4Bit svSmall8Bit = kSelectorSmall8Bit svMini1Bit = kSelectorMini1Bit svMini4Bit = kSelectorMini4Bit svMini8Bit = kSelectorMini8Bit svAllLargeData = kSelectorAllLargeData svAllSmallData = kSelectorAllSmallData svAllMiniData = kSelectorAllMiniData svAll1BitData = kSelectorAll1BitData svAll4BitData = kSelectorAll4BitData svAll8BitData = kSelectorAll8BitData # svAllAvailableData = kSelectorAllAvailableData kSystemIconsCreator = FOUR_CHAR_CODE('macs') # err = GetIconRef(kOnSystemDisk kClipboardIcon = FOUR_CHAR_CODE('CLIP') kClippingUnknownTypeIcon = FOUR_CHAR_CODE('clpu') kClippingPictureTypeIcon = FOUR_CHAR_CODE('clpp') kClippingTextTypeIcon = FOUR_CHAR_CODE('clpt') kClippingSoundTypeIcon = FOUR_CHAR_CODE('clps') kDesktopIcon = FOUR_CHAR_CODE('desk') kFinderIcon = FOUR_CHAR_CODE('FNDR') kFontSuitcaseIcon = FOUR_CHAR_CODE('FFIL') kFullTrashIcon = FOUR_CHAR_CODE('ftrh') kGenericApplicationIcon = FOUR_CHAR_CODE('APPL') kGenericCDROMIcon = FOUR_CHAR_CODE('cddr') kGenericControlPanelIcon = FOUR_CHAR_CODE('APPC') kGenericControlStripModuleIcon = FOUR_CHAR_CODE('sdev') kGenericComponentIcon = FOUR_CHAR_CODE('thng') kGenericDeskAccessoryIcon = FOUR_CHAR_CODE('APPD') kGenericDocumentIcon = FOUR_CHAR_CODE('docu') kGenericEditionFileIcon = FOUR_CHAR_CODE('edtf') kGenericExtensionIcon = FOUR_CHAR_CODE('INIT') kGenericFileServerIcon = FOUR_CHAR_CODE('srvr') kGenericFontIcon = FOUR_CHAR_CODE('ffil') kGenericFontScalerIcon = FOUR_CHAR_CODE('sclr') kGenericFloppyIcon = FOUR_CHAR_CODE('flpy') kGenericHardDiskIcon = FOUR_CHAR_CODE('hdsk') kGenericIDiskIcon = FOUR_CHAR_CODE('idsk') kGenericRemovableMediaIcon = FOUR_CHAR_CODE('rmov') kGenericMoverObjectIcon = FOUR_CHAR_CODE('movr') kGenericPCCardIcon = FOUR_CHAR_CODE('pcmc') kGenericPreferencesIcon = FOUR_CHAR_CODE('pref') kGenericQueryDocumentIcon = FOUR_CHAR_CODE('qery') kGenericRAMDiskIcon = FOUR_CHAR_CODE('ramd') kGenericSharedLibaryIcon = FOUR_CHAR_CODE('shlb') kGenericStationeryIcon = FOUR_CHAR_CODE('sdoc') kGenericSuitcaseIcon = FOUR_CHAR_CODE('suit') kGenericURLIcon = FOUR_CHAR_CODE('gurl') kGenericWORMIcon = FOUR_CHAR_CODE('worm') kInternationalResourcesIcon = FOUR_CHAR_CODE('ifil') kKeyboardLayoutIcon = FOUR_CHAR_CODE('kfil') kSoundFileIcon = FOUR_CHAR_CODE('sfil') kSystemSuitcaseIcon = FOUR_CHAR_CODE('zsys') kTrashIcon = FOUR_CHAR_CODE('trsh') kTrueTypeFontIcon = FOUR_CHAR_CODE('tfil') kTrueTypeFlatFontIcon = FOUR_CHAR_CODE('sfnt') kTrueTypeMultiFlatFontIcon = FOUR_CHAR_CODE('ttcf') kUserIDiskIcon = FOUR_CHAR_CODE('udsk') kInternationResourcesIcon = kInternationalResourcesIcon kInternetLocationHTTPIcon = FOUR_CHAR_CODE('ilht') kInternetLocationFTPIcon = FOUR_CHAR_CODE('ilft') kInternetLocationAppleShareIcon = FOUR_CHAR_CODE('ilaf') kInternetLocationAppleTalkZoneIcon = FOUR_CHAR_CODE('ilat') kInternetLocationFileIcon = FOUR_CHAR_CODE('ilfi') kInternetLocationMailIcon = FOUR_CHAR_CODE('ilma') kInternetLocationNewsIcon = FOUR_CHAR_CODE('ilnw') kInternetLocationNSLNeighborhoodIcon = FOUR_CHAR_CODE('ilns') kInternetLocationGenericIcon = FOUR_CHAR_CODE('ilge') kGenericFolderIcon = FOUR_CHAR_CODE('fldr') kDropFolderIcon = FOUR_CHAR_CODE('dbox') kMountedFolderIcon = FOUR_CHAR_CODE('mntd') kOpenFolderIcon = FOUR_CHAR_CODE('ofld') kOwnedFolderIcon = FOUR_CHAR_CODE('ownd') kPrivateFolderIcon = FOUR_CHAR_CODE('prvf') kSharedFolderIcon = FOUR_CHAR_CODE('shfl') kSharingPrivsNotApplicableIcon = FOUR_CHAR_CODE('shna') kSharingPrivsReadOnlyIcon = FOUR_CHAR_CODE('shro') kSharingPrivsReadWriteIcon = FOUR_CHAR_CODE('shrw') kSharingPrivsUnknownIcon = FOUR_CHAR_CODE('shuk') kSharingPrivsWritableIcon = FOUR_CHAR_CODE('writ') kUserFolderIcon = FOUR_CHAR_CODE('ufld') kWorkgroupFolderIcon = FOUR_CHAR_CODE('wfld') kGuestUserIcon = FOUR_CHAR_CODE('gusr') kUserIcon = FOUR_CHAR_CODE('user') kOwnerIcon = FOUR_CHAR_CODE('susr') kGroupIcon = FOUR_CHAR_CODE('grup') kAppearanceFolderIcon = FOUR_CHAR_CODE('appr') kAppleExtrasFolderIcon = FOUR_CHAR_CODE('aex\xc4') kAppleMenuFolderIcon = FOUR_CHAR_CODE('amnu') kApplicationsFolderIcon = FOUR_CHAR_CODE('apps') kApplicationSupportFolderIcon = FOUR_CHAR_CODE('asup') kAssistantsFolderIcon = FOUR_CHAR_CODE('ast\xc4') kColorSyncFolderIcon = FOUR_CHAR_CODE('prof') kContextualMenuItemsFolderIcon = FOUR_CHAR_CODE('cmnu') kControlPanelDisabledFolderIcon = FOUR_CHAR_CODE('ctrD') kControlPanelFolderIcon = FOUR_CHAR_CODE('ctrl') kControlStripModulesFolderIcon = FOUR_CHAR_CODE('sdv\xc4') kDocumentsFolderIcon = FOUR_CHAR_CODE('docs') kExtensionsDisabledFolderIcon = FOUR_CHAR_CODE('extD') kExtensionsFolderIcon = FOUR_CHAR_CODE('extn') kFavoritesFolderIcon = FOUR_CHAR_CODE('favs') kFontsFolderIcon = FOUR_CHAR_CODE('font') kHelpFolderIcon = FOUR_CHAR_CODE('\xc4hlp') kInternetFolderIcon = FOUR_CHAR_CODE('int\xc4') kInternetPlugInFolderIcon = FOUR_CHAR_CODE('\xc4net') kInternetSearchSitesFolderIcon = FOUR_CHAR_CODE('issf') kLocalesFolderIcon = FOUR_CHAR_CODE('\xc4loc') kMacOSReadMeFolderIcon = FOUR_CHAR_CODE('mor\xc4') kPublicFolderIcon = FOUR_CHAR_CODE('pubf') kPreferencesFolderIcon = FOUR_CHAR_CODE('prf\xc4') kPrinterDescriptionFolderIcon = FOUR_CHAR_CODE('ppdf') kPrinterDriverFolderIcon = FOUR_CHAR_CODE('\xc4prd') kPrintMonitorFolderIcon = FOUR_CHAR_CODE('prnt') kRecentApplicationsFolderIcon = FOUR_CHAR_CODE('rapp') kRecentDocumentsFolderIcon = FOUR_CHAR_CODE('rdoc') kRecentServersFolderIcon = FOUR_CHAR_CODE('rsrv') kScriptingAdditionsFolderIcon = FOUR_CHAR_CODE('\xc4scr') kSharedLibrariesFolderIcon = FOUR_CHAR_CODE('\xc4lib') kScriptsFolderIcon = FOUR_CHAR_CODE('scr\xc4') kShutdownItemsDisabledFolderIcon = FOUR_CHAR_CODE('shdD') kShutdownItemsFolderIcon = FOUR_CHAR_CODE('shdf') kSpeakableItemsFolder = FOUR_CHAR_CODE('spki') kStartupItemsDisabledFolderIcon = FOUR_CHAR_CODE('strD') kStartupItemsFolderIcon = FOUR_CHAR_CODE('strt') kSystemExtensionDisabledFolderIcon = FOUR_CHAR_CODE('macD') kSystemFolderIcon = FOUR_CHAR_CODE('macs') kTextEncodingsFolderIcon = FOUR_CHAR_CODE('\xc4tex') kUsersFolderIcon = FOUR_CHAR_CODE('usr\xc4') kUtilitiesFolderIcon = FOUR_CHAR_CODE('uti\xc4') kVoicesFolderIcon = FOUR_CHAR_CODE('fvoc') kSystemFolderXIcon = FOUR_CHAR_CODE('macx') kAppleScriptBadgeIcon = FOUR_CHAR_CODE('scrp') kLockedBadgeIcon = FOUR_CHAR_CODE('lbdg') kMountedBadgeIcon = FOUR_CHAR_CODE('mbdg') kSharedBadgeIcon = FOUR_CHAR_CODE('sbdg') kAliasBadgeIcon = FOUR_CHAR_CODE('abdg') kAlertCautionBadgeIcon = FOUR_CHAR_CODE('cbdg') kAlertNoteIcon = FOUR_CHAR_CODE('note') kAlertCautionIcon = FOUR_CHAR_CODE('caut') kAlertStopIcon = FOUR_CHAR_CODE('stop') kAppleTalkIcon = FOUR_CHAR_CODE('atlk') kAppleTalkZoneIcon = FOUR_CHAR_CODE('atzn') kAFPServerIcon = FOUR_CHAR_CODE('afps') kFTPServerIcon = FOUR_CHAR_CODE('ftps') kHTTPServerIcon = FOUR_CHAR_CODE('htps') kGenericNetworkIcon = FOUR_CHAR_CODE('gnet') kIPFileServerIcon = FOUR_CHAR_CODE('isrv') kToolbarCustomizeIcon = FOUR_CHAR_CODE('tcus') kToolbarDeleteIcon = FOUR_CHAR_CODE('tdel') kToolbarFavoritesIcon = FOUR_CHAR_CODE('tfav') kToolbarHomeIcon = FOUR_CHAR_CODE('thom') kAppleLogoIcon = FOUR_CHAR_CODE('capl') kAppleMenuIcon = FOUR_CHAR_CODE('sapl') kBackwardArrowIcon = FOUR_CHAR_CODE('baro') kFavoriteItemsIcon = FOUR_CHAR_CODE('favr') kForwardArrowIcon = FOUR_CHAR_CODE('faro') kGridIcon = FOUR_CHAR_CODE('grid') kHelpIcon = FOUR_CHAR_CODE('help') kKeepArrangedIcon = FOUR_CHAR_CODE('arng') kLockedIcon = FOUR_CHAR_CODE('lock') kNoFilesIcon = FOUR_CHAR_CODE('nfil') kNoFolderIcon = FOUR_CHAR_CODE('nfld') kNoWriteIcon = FOUR_CHAR_CODE('nwrt') kProtectedApplicationFolderIcon = FOUR_CHAR_CODE('papp') kProtectedSystemFolderIcon = FOUR_CHAR_CODE('psys') kRecentItemsIcon = FOUR_CHAR_CODE('rcnt') kShortcutIcon = FOUR_CHAR_CODE('shrt') kSortAscendingIcon = FOUR_CHAR_CODE('asnd') kSortDescendingIcon = FOUR_CHAR_CODE('dsnd') kUnlockedIcon = FOUR_CHAR_CODE('ulck') kConnectToIcon = FOUR_CHAR_CODE('cnct') kGenericWindowIcon = FOUR_CHAR_CODE('gwin') kQuestionMarkIcon = FOUR_CHAR_CODE('ques') kDeleteAliasIcon = FOUR_CHAR_CODE('dali') kEjectMediaIcon = FOUR_CHAR_CODE('ejec') kBurningIcon = FOUR_CHAR_CODE('burn') kRightContainerArrowIcon = FOUR_CHAR_CODE('rcar') kIconServicesNormalUsageFlag = 0 kIconServicesCatalogInfoMask = (kFSCatInfoNodeID | kFSCatInfoParentDirID | kFSCatInfoVolume | kFSCatInfoNodeFlags | kFSCatInfoFinderInfo | kFSCatInfoFinderXInfo | kFSCatInfoUserAccess) kPlotIconRefNormalFlags = 0L kPlotIconRefNoImage = (1 << 1) kPlotIconRefNoMask = (1 << 2) kIconFamilyType = FOUR_CHAR_CODE('icns') --- NEW FILE: Launch.py --- from _Launch import * --- NEW FILE: LaunchServices.py --- # Generated from 'LaunchServices.h' def FOUR_CHAR_CODE(x): return x from Carbon.Files import * kLSRequestAllInfo = -1 kLSRolesAll = -1 kLSUnknownType = FOUR_CHAR_CODE('\0\0\0\0') kLSUnknownCreator = FOUR_CHAR_CODE('\0\0\0\0') kLSInvalidExtensionIndex = -1 kLSUnknownErr = -10810 kLSNotAnApplicationErr = -10811 kLSNotInitializedErr = -10812 kLSDataUnavailableErr = -10813 kLSApplicationNotFoundErr = -10814 kLSUnknownTypeErr = -10815 kLSDataTooOldErr = -10816 kLSDataErr = -10817 kLSLaunchInProgressErr = -10818 kLSNotRegisteredErr = -10819 kLSAppDoesNotClaimTypeErr = -10820 kLSAppDoesNotSupportSchemeWarning = -10821 kLSServerCommunicationErr = -10822 kLSCannotSetInfoErr = -10823 kLSInitializeDefaults = 0x00000001 kLSMinCatInfoBitmap = (kFSCatInfoNodeFlags | kFSCatInfoParentDirID | kFSCatInfoFinderInfo | kFSCatInfoFinderXInfo) # kLSInvalidExtensionIndex = (unsigned long)0xFFFFFFFF kLSRequestExtension = 0x00000001 kLSRequestTypeCreator = 0x00000002 kLSRequestBasicFlagsOnly = 0x00000004 kLSRequestAppTypeFlags = 0x00000008 kLSRequestAllFlags = 0x00000010 kLSRequestIconAndKind = 0x00000020 kLSRequestExtensionFlagsOnly = 0x00000040 # kLSRequestAllInfo = (unsigned long)0xFFFFFFFF kLSItemInfoIsPlainFile = 0x00000001 kLSItemInfoIsPackage = 0x00000002 kLSItemInfoIsApplication = 0x00000004 kLSItemInfoIsContainer = 0x00000008 kLSItemInfoIsAliasFile = 0x00000010 kLSItemInfoIsSymlink = 0x00000020 kLSItemInfoIsInvisible = 0x00000040 kLSItemInfoIsNativeApp = 0x00000080 kLSItemInfoIsClassicApp = 0x00000100 kLSItemInfoAppPrefersNative = 0x00000200 kLSItemInfoAppPrefersClassic = 0x00000400 kLSItemInfoAppIsScriptable = 0x00000800 kLSItemInfoIsVolume = 0x00001000 kLSItemInfoExtensionIsHidden = 0x00100000 kLSRolesNone = 0x00000001 kLSRolesViewer = 0x00000002 kLSRolesEditor = 0x00000004 # kLSRolesAll = (unsigned long)0xFFFFFFFF kLSUnknownKindID = 0 # kLSUnknownType = 0 # kLSUnknownCreator = 0 kLSAcceptDefault = 0x00000001 kLSAcceptAllowLoginUI = 0x00000002 kLSLaunchDefaults = 0x00000001 kLSLaunchAndPrint = 0x00000002 kLSLaunchReserved2 = 0x00000004 kLSLaunchReserved3 = 0x00000008 kLSLaunchReserved4 = 0x00000010 kLSLaunchReserved5 = 0x00000020 kLSLaunchReserved6 = 0x00000040 kLSLaunchInhibitBGOnly = 0x00000080 kLSLaunchDontAddToRecents = 0x00000100 kLSLaunchDontSwitch = 0x00000200 kLSLaunchNoParams = 0x00000800 kLSLaunchAsync = 0x00010000 kLSLaunchStartClassic = 0x00020000 kLSLaunchInClassic = 0x00040000 kLSLaunchNewInstance = 0x00080000 kLSLaunchAndHide = 0x00100000 kLSLaunchAndHideOthers = 0x00200000 --- NEW FILE: List.py --- from _List import * --- NEW FILE: Lists.py --- # Generated from 'Lists.h' def FOUR_CHAR_CODE(x): return x listNotifyNothing = FOUR_CHAR_CODE('nada') listNotifyClick = FOUR_CHAR_CODE('clik') listNotifyDoubleClick = FOUR_CHAR_CODE('dblc') listNotifyPreClick = FOUR_CHAR_CODE('pclk') lDrawingModeOffBit = 3 lDoVAutoscrollBit = 1 lDoHAutoscrollBit = 0 lDrawingModeOff = 8 lDoVAutoscroll = 2 lDoHAutoscroll = 1 lOnlyOneBit = 7 lExtendDragBit = 6 lNoDisjointBit = 5 lNoExtendBit = 4 lNoRectBit = 3 lUseSenseBit = 2 lNoNilHiliteBit = 1 lOnlyOne = -128 lExtendDrag = 64 lNoDisjoint = 32 lNoExtend = 16 lNoRect = 8 lUseSense = 4 lNoNilHilite = 2 lInitMsg = 0 lDrawMsg = 1 lHiliteMsg = 2 lCloseMsg = 3 kListDefProcPtr = 0 kListDefUserProcType = kListDefProcPtr kListDefStandardTextType = 1 kListDefStandardIconType = 2 --- NEW FILE: MacHelp.py --- # Generated from 'MacHelp.h' def FOUR_CHAR_CODE(x): return x kMacHelpVersion = 0x0003 kHMSupplyContent = 0 kHMDisposeContent = 1 kHMNoContent = FOUR_CHAR_CODE('none') kHMCFStringContent = FOUR_CHAR_CODE('cfst') kHMPascalStrContent = FOUR_CHAR_CODE('pstr') kHMStringResContent = FOUR_CHAR_CODE('str#') kHMTEHandleContent = FOUR_CHAR_CODE('txth') kHMTextResContent = FOUR_CHAR_CODE('text') kHMStrResContent = FOUR_CHAR_CODE('str ') kHMDefaultSide = 0 kHMOutsideTopScriptAligned = 1 kHMOutsideLeftCenterAligned = 2 kHMOutsideBottomScriptAligned = 3 kHMOutsideRightCenterAligned = 4 kHMOutsideTopLeftAligned = 5 kHMOutsideTopRightAligned = 6 kHMOutsideLeftTopAligned = 7 kHMOutsideLeftBottomAligned = 8 kHMOutsideBottomLeftAligned = 9 kHMOutsideBottomRightAligned = 10 kHMOutsideRightTopAligned = 11 kHMOutsideRightBottomAligned = 12 kHMOutsideTopCenterAligned = 13 kHMOutsideBottomCenterAligned = 14 kHMInsideRightCenterAligned = 15 kHMInsideLeftCenterAligned = 16 kHMInsideBottomCenterAligned = 17 kHMInsideTopCenterAligned = 18 kHMInsideTopLeftCorner = 19 kHMInsideTopRightCorner = 20 kHMInsideBottomLeftCorner = 21 kHMInsideBottomRightCorner = 22 kHMAbsoluteCenterAligned = 23 kHMTopSide = kHMOutsideTopScriptAligned kHMLeftSide = kHMOutsideLeftCenterAligned kHMBottomSide = kHMOutsideBottomScriptAligned kHMRightSide = kHMOutsideRightCenterAligned kHMTopLeftCorner = kHMOutsideTopLeftAligned kHMTopRightCorner = kHMOutsideTopRightAligned kHMLeftTopCorner = kHMOutsideLeftTopAligned kHMLeftBottomCorner = kHMOutsideLeftBottomAligned kHMBottomLeftCorner = kHMOutsideBottomLeftAligned kHMBottomRightCorner = kHMOutsideBottomRightAligned kHMRightTopCorner = kHMOutsideRightTopAligned kHMRightBottomCorner = kHMOutsideRightBottomAligned kHMContentProvided = 0 kHMContentNotProvided = 1 kHMContentNotProvidedDontPropagate = 2 kHMMinimumContentIndex = 0 kHMMaximumContentIndex = 1 errHMIllegalContentForMinimumState = -10980 errHMIllegalContentForMaximumState = -10981 kHMIllegalContentForMinimumState = errHMIllegalContentForMinimumState kHelpTagEventHandlerTag = FOUR_CHAR_CODE('hevt') --- NEW FILE: MacTextEditor.py --- # Generated from 'MacTextEditor.h' def FOUR_CHAR_CODE(x): return x false = 0 true = 1 kTXNClearThisControl = 0xFFFFFFFF kTXNClearTheseFontFeatures = 0x80000000 kTXNDontCareTypeSize = 0xFFFFFFFF kTXNDecrementTypeSize = 0x80000000 kTXNUseCurrentSelection = 0xFFFFFFFF kTXNStartOffset = 0 kTXNEndOffset = 0x7FFFFFFF MovieFileType = FOUR_CHAR_CODE('moov') kTXNUseEncodingWordRulesMask = 0x80000000 kTXNFontSizeAttributeSize = 4 normal = 0 kTXNWillDefaultToATSUIBit = 0 kTXNWillDefaultToCarbonEventBit = 1 kTXNWillDefaultToATSUIMask = 1L << kTXNWillDefaultToATSUIBit kTXNWillDefaultToCarbonEventMask = 1L << kTXNWillDefaultToCarbonEventBit kTXNWantMoviesBit = 0 kTXNWantSoundBit = 1 kTXNWantGraphicsBit = 2 kTXNAlwaysUseQuickDrawTextBit = 3 kTXNUseTemporaryMemoryBit = 4 kTXNWantMoviesMask = 1L << kTXNWantMoviesBit kTXNWantSoundMask = 1L << kTXNWantSoundBit kTXNWantGraphicsMask = 1L << kTXNWantGraphicsBit kTXNAlwaysUseQuickDrawTextMask = 1L << kTXNAlwaysUseQuickDrawTextBit kTXNUseTemporaryMemoryMask = 1L << kTXNUseTemporaryMemoryBit kTXNDrawGrowIconBit = 0 kTXNShowWindowBit = 1 kTXNWantHScrollBarBit = 2 kTXNWantVScrollBarBit = 3 kTXNNoTSMEverBit = 4 kTXNReadOnlyBit = 5 kTXNNoKeyboardSyncBit = 6 kTXNNoSelectionBit = 7 kTXNSaveStylesAsSTYLResourceBit = 8 kOutputTextInUnicodeEncodingBit = 9 kTXNDoNotInstallDragProcsBit = 10 kTXNAlwaysWrapAtViewEdgeBit = 11 kTXNDontDrawCaretWhenInactiveBit = 12 kTXNDontDrawSelectionWhenInactiveBit = 13 kTXNSingleLineOnlyBit = 14 kTXNDisableDragAndDropBit = 15 kTXNUseQDforImagingBit = 16 kTXNDrawGrowIconMask = 1L << kTXNDrawGrowIconBit kTXNShowWindowMask = 1L << kTXNShowWindowBit kTXNWantHScrollBarMask = 1L << kTXNWantHScrollBarBit kTXNWantVScrollBarMask = 1L << kTXNWantVScrollBarBit kTXNNoTSMEverMask = 1L << kTXNNoTSMEverBit kTXNReadOnlyMask = 1L << kTXNReadOnlyBit kTXNNoKeyboardSyncMask = 1L << kTXNNoKeyboardSyncBit kTXNNoSelectionMask = 1L << kTXNNoSelectionBit kTXNSaveStylesAsSTYLResourceMask = 1L << kTXNSaveStylesAsSTYLResourceBit kOutputTextInUnicodeEncodingMask = 1L << kOutputTextInUnicodeEncodingBit kTXNDoNotInstallDragProcsMask = 1L << kTXNDoNotInstallDragProcsBit kTXNAlwaysWrapAtViewEdgeMask = 1L << kTXNAlwaysWrapAtViewEdgeBit kTXNDontDrawCaretWhenInactiveMask = 1L << kTXNDontDrawCaretWhenInactiveBit kTXNDontDrawSelectionWhenInactiveMask = 1L << kTXNDontDrawSelectionWhenInactiveBit kTXNSingleLineOnlyMask = 1L << kTXNSingleLineOnlyBit kTXNDisableDragAndDropMask = 1L << kTXNDisableDragAndDropBit kTXNUseQDforImagingMask = 1L << kTXNUseQDforImagingBit kTXNSetFlushnessBit = 0 kTXNSetJustificationBit = 1 kTXNUseFontFallBackBit = 2 kTXNRotateTextBit = 3 kTXNUseVerticalTextBit = 4 kTXNDontUpdateBoxRectBit = 5 kTXNDontDrawTextBit = 6 kTXNUseCGContextRefBit = 7 kTXNImageWithQDBit = 8 kTXNDontWrapTextBit = 9 kTXNSetFlushnessMask = 1L << kTXNSetFlushnessBit kTXNSetJustificationMask = 1L << kTXNSetJustificationBit kTXNUseFontFallBackMask = 1L << kTXNUseFontFallBackBit kTXNRotateTextMask = 1L << kTXNRotateTextBit kTXNUseVerticalTextMask = 1L << kTXNUseVerticalTextBit kTXNDontUpdateBoxRectMask = 1L << kTXNDontUpdateBoxRectBit kTXNDontDrawTextMask = 1L << kTXNDontDrawTextBit kTXNUseCGContextRefMask = 1L << kTXNUseCGContextRefBit kTXNImageWithQDMask = 1L << kTXNImageWithQDBit kTXNDontWrapTextMask = 1L << kTXNDontWrapTextBit kTXNFontContinuousBit = 0 kTXNSizeContinuousBit = 1 kTXNStyleContinuousBit = 2 kTXNColorContinuousBit = 3 kTXNFontContinuousMask = 1L << kTXNFontContinuousBit kTXNSizeContinuousMask = 1L << kTXNSizeContinuousBit kTXNStyleContinuousMask = 1L << kTXNStyleContinuousBit kTXNColorContinuousMask = 1L << kTXNColorContinuousBit kTXNIgnoreCaseBit = 0 kTXNEntireWordBit = 1 kTXNUseEncodingWordRulesBit = 31 kTXNIgnoreCaseMask = 1L << kTXNIgnoreCaseBit kTXNEntireWordMask = 1L << kTXNEntireWordBit # kTXNUseEncodingWordRulesMask = (unsigned long)(1L << kTXNUseEncodingWordRulesBit) kTXNTextensionFile = FOUR_CHAR_CODE('txtn') kTXNTextFile = FOUR_CHAR_CODE('TEXT') kTXNPictureFile = FOUR_CHAR_CODE('PICT') kTXNMovieFile = FOUR_CHAR_CODE('MooV') kTXNSoundFile = FOUR_CHAR_CODE('sfil') kTXNAIFFFile = FOUR_CHAR_CODE('AIFF') kTXNUnicodeTextFile = FOUR_CHAR_CODE('utxt') kTXNTextEditStyleFrameType = 1 kTXNPageFrameType = 2 kTXNMultipleFrameType = 3 kTXNTextData = FOUR_CHAR_CODE('TEXT') kTXNPictureData = FOUR_CHAR_CODE('PICT') kTXNMovieData = FOUR_CHAR_CODE('moov') kTXNSoundData = FOUR_CHAR_CODE('snd ') kTXNUnicodeTextData = FOUR_CHAR_CODE('utxt') kTXNLineDirectionTag = FOUR_CHAR_CODE('lndr') kTXNJustificationTag = FOUR_CHAR_CODE('just') kTXNIOPrivilegesTag = FOUR_CHAR_CODE('iopv') kTXNSelectionStateTag = FOUR_CHAR_CODE('slst') kTXNInlineStateTag = FOUR_CHAR_CODE('inst') kTXNWordWrapStateTag = FOUR_CHAR_CODE('wwrs') kTXNKeyboardSyncStateTag = FOUR_CHAR_CODE('kbsy') kTXNAutoIndentStateTag = FOUR_CHAR_CODE('auin') kTXNTabSettingsTag = FOUR_CHAR_CODE('tabs') kTXNRefConTag = FOUR_CHAR_CODE('rfcn') kTXNMarginsTag = FOUR_CHAR_CODE('marg') kTXNFlattenMoviesTag = FOUR_CHAR_CODE('flat') kTXNDoFontSubstitution = FOUR_CHAR_CODE('fSub') kTXNNoUserIOTag = FOUR_CHAR_CODE('nuio') kTXNUseCarbonEvents = FOUR_CHAR_CODE('cbcb') kTXNDrawCaretWhenInactiveTag = FOUR_CHAR_CODE('dcrt') kTXNDrawSelectionWhenInactiveTag = FOUR_CHAR_CODE('dsln') kTXNDisableDragAndDropTag = FOUR_CHAR_CODE('drag') kTXNTypingAction = 0 kTXNCutAction = 1 kTXNPasteAction = 2 kTXNClearAction = 3 kTXNChangeFontAction = 4 kTXNChangeFontColorAction = 5 kTXNChangeFontSizeAction = 6 kTXNChangeStyleAction = 7 kTXNAlignLeftAction = 8 kTXNAlignCenterAction = 9 kTXNAlignRightAction = 10 kTXNDropAction = 11 kTXNMoveAction = 12 kTXNFontFeatureAction = 13 kTXNFontVariationAction = 14 kTXNUndoLastAction = 1024 # kTXNClearThisControl = (long)0xFFFFFFFF # kTXNClearTheseFontFeatures = (long)0x80000000 kTXNReadWrite = false kTXNReadOnly = true kTXNSelectionOn = true kTXNSelectionOff = false kTXNUseInline = false kTXNUseBottomline = true kTXNAutoWrap = false kTXNNoAutoWrap = true kTXNSyncKeyboard = false kTXNNoSyncKeyboard = true kTXNAutoIndentOff = false kTXNAutoIndentOn = true kTXNDontDrawCaretWhenInactive = false kTXNDrawCaretWhenInactive = true kTXNDontDrawSelectionWhenInactive = false kTXNDrawSelectionWhenInactive = true kTXNEnableDragAndDrop = false kTXNDisableDragAndDrop = true kTXNRightTab = -1 kTXNLeftTab = 0 kTXNCenterTab = 1 kTXNLeftToRight = 0 kTXNRightToLeft = 1 kTXNFlushDefault = 0 kTXNFlushLeft = 1 kTXNFlushRight = 2 kTXNCenter = 4 kTXNFullJust = 8 kTXNForceFullJust = 16 kScrollBarsAlwaysActive = true kScrollBarsSyncWithFocus = false # kTXNDontCareTypeSize = (long)0xFFFFFFFF kTXNDontCareTypeStyle = 0xFF kTXNIncrementTypeSize = 0x00000001 # kTXNDecrementTypeSize = (long)0x80000000 kTXNUseScriptDefaultValue = -1 kTXNNoFontVariations = 0x7FFF # kTXNUseCurrentSelection = (unsigned long)0xFFFFFFFF # kTXNStartOffset = 0 # kTXNEndOffset = 0x7FFFFFFF kTXNSingleStylePerTextDocumentResType = FOUR_CHAR_CODE('MPSR') kTXNMultipleStylesPerTextDocumentResType = FOUR_CHAR_CODE('styl') kTXNShowStart = false kTXNShowEnd = true kTXNDefaultFontName = 0 kTXNDefaultFontSize = 0x000C0000 kTXNDefaultFontStyle = normal kTXNQDFontNameAttribute = FOUR_CHAR_CODE('fntn') kTXNQDFontFamilyIDAttribute = FOUR_CHAR_CODE('font') kTXNQDFontSizeAttribute = FOUR_CHAR_CODE('size') kTXNQDFontStyleAttribute = FOUR_CHAR_CODE('face') kTXNQDFontColorAttribute = FOUR_CHAR_CODE('klor') kTXNTextEncodingAttribute = FOUR_CHAR_CODE('encd') kTXNATSUIFontFeaturesAttribute = FOUR_CHAR_CODE('atfe') kTXNATSUIFontVariationsAttribute = FOUR_CHAR_CODE('atva') # kTXNQDFontNameAttributeSize = sizeof(Str255) # kTXNQDFontFamilyIDAttributeSize = sizeof(SInt16) # kTXNQDFontSizeAttributeSize = sizeof(SInt16) # kTXNQDFontStyleAttributeSize = sizeof(Style) # kTXNQDFontColorAttributeSize = sizeof(RGBColor) # kTXNTextEncodingAttributeSize = sizeof(TextEncoding) # kTXNFontSizeAttributeSize = sizeof(Fixed) kTXNSystemDefaultEncoding = 0 kTXNMacOSEncoding = 1 kTXNUnicodeEncoding = 2 kTXNBackgroundTypeRGB = 1 kTXNTextInputCountBit = 0 kTXNRunCountBit = 1 kTXNTextInputCountMask = 1L << kTXNTextInputCountBit kTXNRunCountMask = 1L << kTXNRunCountBit kTXNAllCountMask = kTXNTextInputCountMask | kTXNRunCountMask kTXNNoAppleEventHandlersBit = 0 kTXNRestartAppleEventHandlersBit = 1 kTXNNoAppleEventHandlersMask = 1 << kTXNNoAppleEventHandlersBit kTXNRestartAppleEventHandlersMask = 1 << kTXNRestartAppleEventHandlersBit # status = TXNInitTextension( &defaults --- NEW FILE: MediaDescr.py --- # Parsers/generators for QuickTime media descriptions import struct Error = 'MediaDescr.Error' class _MediaDescriptionCodec: def __init__(self, trunc, size, names, fmt): self.trunc = trunc self.size = size self.names = names self.fmt = fmt def decode(self, data): if self.trunc: data = data[:self.size] values = struct.unpack(self.fmt, data) if len(values) != len(self.names): raise Error, ('Format length does not match number of names', descr) rv = {} for i in range(len(values)): name = self.names[i] value = values[i] if type(name) == type(()): name, cod, dec = name value = dec(value) rv[name] = value return rv def encode(dict): list = [self.fmt] for name in self.names: if type(name) == type(()): name, cod, dec = name else: cod = dec = None value = dict[name] if cod: value = cod(value) list.append(value) rv = struct.pack(*list) return rv # Helper functions def _tofixed(float): hi = int(float) lo = int(float*0x10000) & 0xffff return (hi<<16)|lo def _fromfixed(fixed): hi = (fixed >> 16) & 0xffff lo = (fixed & 0xffff) return hi + (lo / float(0x10000)) def _tostr31(str): return chr(len(str)) + str + '\0'*(31-len(str)) def _fromstr31(str31): return str31[1:1+ord(str31[0])] SampleDescription = _MediaDescriptionCodec( 1, # May be longer, truncate 16, # size ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex'), # Attributes "l4slhh" # Format ) SoundDescription = _MediaDescriptionCodec( 1, 36, ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex', 'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize', 'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed)), "l4slhhhh4shhhhl" # Format ) SoundDescriptionV1 = _MediaDescriptionCodec( 1, 52, ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex', 'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize', 'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed), 'samplesPerPacket', 'bytesPerPacket', 'bytesPerFrame', 'bytesPerSample'), "l4slhhhh4shhhhlllll" # Format ) ImageDescription = _MediaDescriptionCodec( 1, # May be longer, truncate 86, # size ('idSize', 'cType', 'resvd1', 'resvd2', 'dataRefIndex', 'version', 'revisionLevel', 'vendor', 'temporalQuality', 'spatialQuality', 'width', 'height', ('hRes', _tofixed, _fromfixed), ('vRes', _tofixed, _fromfixed), 'dataSize', 'frameCount', ('name', _tostr31, _fromstr31), 'depth', 'clutID'), 'l4slhhhh4sllhhlllh32shh', ) # XXXX Others, like TextDescription and such, remain to be done. --- NEW FILE: Menu.py --- from _Menu import * --- NEW FILE: Menus.py --- # Generated from 'Menus.h' def FOUR_CHAR_CODE(x): return x noMark = 0 kMenuDrawMsg = 0 kMenuSizeMsg = 2 kMenuPopUpMsg = 3 kMenuCalcItemMsg = 5 kMenuThemeSavvyMsg = 7 mDrawMsg = 0 mSizeMsg = 2 mPopUpMsg = 3 mCalcItemMsg = 5 mChooseMsg = 1 mDrawItemMsg = 4 kMenuChooseMsg = 1 kMenuDrawItemMsg = 4 kThemeSavvyMenuResponse = 0x7473 kMenuInitMsg = 8 kMenuDisposeMsg = 9 kMenuFindItemMsg = 10 kMenuHiliteItemMsg = 11 kMenuDrawItemsMsg = 12 textMenuProc = 0 hMenuCmd = 27 hierMenu = -1 kInsertHierarchicalMenu = -1 mctAllItems = -98 mctLastIDIndic = -99 kMenuStdMenuProc = 63 kMenuStdMenuBarProc = 63 kMenuNoModifiers = 0 kMenuShiftModifier = (1 << 0) kMenuOptionModifier = (1 << 1) kMenuControlModifier = (1 << 2) kMenuNoCommandModifier = (1 << 3) kMenuNoIcon = 0 kMenuIconType = 1 kMenuShrinkIconType = 2 kMenuSmallIconType = 3 kMenuColorIconType = 4 kMenuIconSuiteType = 5 kMenuIconRefType = 6 kMenuCGImageRefType = 7 kMenuSystemIconSelectorType = 8 kMenuIconResourceType = 9 kMenuNullGlyph = 0x00 kMenuTabRightGlyph = 0x02 kMenuTabLeftGlyph = 0x03 kMenuEnterGlyph = 0x04 kMenuShiftGlyph = 0x05 kMenuControlGlyph = 0x06 kMenuOptionGlyph = 0x07 kMenuSpaceGlyph = 0x09 kMenuDeleteRightGlyph = 0x0A kMenuReturnGlyph = 0x0B kMenuReturnR2LGlyph = 0x0C kMenuNonmarkingReturnGlyph = 0x0D kMenuPencilGlyph = 0x0F kMenuDownwardArrowDashedGlyph = 0x10 kMenuCommandGlyph = 0x11 kMenuCheckmarkGlyph = 0x12 kMenuDiamondGlyph = 0x13 kMenuAppleLogoFilledGlyph = 0x14 kMenuParagraphKoreanGlyph = 0x15 kMenuDeleteLeftGlyph = 0x17 kMenuLeftArrowDashedGlyph = 0x18 kMenuUpArrowDashedGlyph = 0x19 kMenuRightArrowDashedGlyph = 0x1A kMenuEscapeGlyph = 0x1B kMenuClearGlyph = 0x1C kMenuLeftDoubleQuotesJapaneseGlyph = 0x1D kMenuRightDoubleQuotesJapaneseGlyph = 0x1E kMenuTrademarkJapaneseGlyph = 0x1F kMenuBlankGlyph = 0x61 kMenuPageUpGlyph = 0x62 kMenuCapsLockGlyph = 0x63 kMenuLeftArrowGlyph = 0x64 kMenuRightArrowGlyph = 0x65 kMenuNorthwestArrowGlyph = 0x66 kMenuHelpGlyph = 0x67 kMenuUpArrowGlyph = 0x68 kMenuSoutheastArrowGlyph = 0x69 kMenuDownArrowGlyph = 0x6A kMenuPageDownGlyph = 0x6B kMenuAppleLogoOutlineGlyph = 0x6C kMenuContextualMenuGlyph = 0x6D kMenuPowerGlyph = 0x6E kMenuF1Glyph = 0x6F kMenuF2Glyph = 0x70 kMenuF3Glyph = 0x71 kMenuF4Glyph = 0x72 kMenuF5Glyph = 0x73 kMenuF6Glyph = 0x74 kMenuF7Glyph = 0x75 kMenuF8Glyph = 0x76 kMenuF9Glyph = 0x77 kMenuF10Glyph = 0x78 kMenuF11Glyph = 0x79 kMenuF12Glyph = 0x7A kMenuF13Glyph = 0x87 kMenuF14Glyph = 0x88 kMenuF15Glyph = 0x89 kMenuControlISOGlyph = 0x8A kMenuAttrExcludesMarkColumn = (1 << 0) kMenuAttrAutoDisable = (1 << 2) kMenuAttrUsePencilGlyph = (1 << 3) kMenuAttrHidden = (1 << 4) kMenuItemAttrDisabled = (1 << 0) kMenuItemAttrIconDisabled = (1 << 1) kMenuItemAttrSubmenuParentChoosable = (1 << 2) kMenuItemAttrDynamic = (1 << 3) kMenuItemAttrNotPreviousAlternate = (1 << 4) kMenuItemAttrHidden = (1 << 5) kMenuItemAttrSeparator = (1 << 6) kMenuItemAttrSectionHeader = (1 << 7) kMenuItemAttrIgnoreMeta = (1 << 8) kMenuItemAttrAutoRepeat = (1 << 9) kMenuItemAttrUseVirtualKey = (1 << 10) kMenuItemAttrCustomDraw = (1 << 11) kMenuItemAttrIncludeInCmdKeyMatching = (1 << 12) kMenuTrackingModeMouse = 1 kMenuTrackingModeKeyboard = 2 kMenuEventIncludeDisabledItems = 0x0001 kMenuEventQueryOnly = 0x0002 kMenuEventDontCheckSubmenus = 0x0004 kMenuItemDataText = (1 << 0) kMenuItemDataMark = (1 << 1) kMenuItemDataCmdKey = (1 << 2) kMenuItemDataCmdKeyGlyph = (1 << 3) kMenuItemDataCmdKeyModifiers = (1 << 4) kMenuItemDataStyle = (1 << 5) kMenuItemDataEnabled = (1 << 6) kMenuItemDataIconEnabled = (1 << 7) kMenuItemDataIconID = (1 << 8) kMenuItemDataIconHandle = (1 << 9) kMenuItemDataCommandID = (1 << 10) kMenuItemDataTextEncoding = (1 << 11) kMenuItemDataSubmenuID = (1 << 12) kMenuItemDataSubmenuHandle = (1 << 13) kMenuItemDataFontID = (1 << 14) kMenuItemDataRefcon = (1 << 15) kMenuItemDataAttributes = (1 << 16) kMenuItemDataCFString = (1 << 17) kMenuItemDataProperties = (1 << 18) kMenuItemDataIndent = (1 << 19) kMenuItemDataCmdVirtualKey = (1 << 20) kMenuItemDataAllDataVersionOne = 0x000FFFFF kMenuItemDataAllDataVersionTwo = kMenuItemDataAllDataVersionOne | kMenuItemDataCmdVirtualKey kMenuDefProcPtr = 0 kMenuPropertyPersistent = 0x00000001 kHierarchicalFontMenuOption = 0x00000001 gestaltContextualMenuAttr = FOUR_CHAR_CODE('cmnu') gestaltContextualMenuUnusedBit = 0 gestaltContextualMenuTrapAvailable = 1 gestaltContextualMenuHasAttributeAndModifierKeys = 2 gestaltContextualMenuHasUnicodeSupport = 3 kCMHelpItemNoHelp = 0 kCMHelpItemAppleGuide = 1 kCMHelpItemOtherHelp = 2 kCMHelpItemRemoveHelp = 3 kCMNothingSelected = 0 kCMMenuItemSelected = 1 kCMShowHelpSelected = 3 keyContextualMenuName = FOUR_CHAR_CODE('pnam') keyContextualMenuCommandID = FOUR_CHAR_CODE('cmcd') keyContextualMenuSubmenu = FOUR_CHAR_CODE('cmsb') keyContextualMenuAttributes = FOUR_CHAR_CODE('cmat') keyContextualMenuModifiers = FOUR_CHAR_CODE('cmmd') --- NEW FILE: Mlte.py --- from _Mlte import * --- NEW FILE: OSA.py --- from _OSA import * --- NEW FILE: OSAconst.py --- # Generated from 'OSA.h' def FOUR_CHAR_CODE(x): return x from Carbon.AppleEvents import * kAEUseStandardDispatch = -1 kOSAComponentType = FOUR_CHAR_CODE('osa ') kOSAGenericScriptingComponentSubtype = FOUR_CHAR_CODE('scpt') kOSAFileType = FOUR_CHAR_CODE('osas') kOSASuite = FOUR_CHAR_CODE('ascr') kOSARecordedText = FOUR_CHAR_CODE('recd') kOSAScriptIsModified = FOUR_CHAR_CODE('modi') kOSAScriptIsTypeCompiledScript = FOUR_CHAR_CODE('cscr') kOSAScriptIsTypeScriptValue = FOUR_CHAR_CODE('valu') kOSAScriptIsTypeScriptContext = FOUR_CHAR_CODE('cntx') kOSAScriptBestType = FOUR_CHAR_CODE('best') kOSACanGetSource = FOUR_CHAR_CODE('gsrc') typeOSADialectInfo = FOUR_CHAR_CODE('difo') keyOSADialectName = FOUR_CHAR_CODE('dnam') keyOSADialectCode = FOUR_CHAR_CODE('dcod') keyOSADialectLangCode = FOUR_CHAR_CODE('dlcd') keyOSADialectScriptCode = FOUR_CHAR_CODE('dscd') kOSANullScript = 0L kOSANullMode = 0 kOSAModeNull = 0 kOSASupportsCompiling = 0x0002 kOSASupportsGetSource = 0x0004 kOSASupportsAECoercion = 0x0008 kOSASupportsAESending = 0x0010 kOSASupportsRecording = 0x0020 kOSASupportsConvenience = 0x0040 kOSASupportsDialects = 0x0080 kOSASupportsEventHandling = 0x0100 kOSASelectLoad = 0x0001 kOSASelectStore = 0x0002 kOSASelectExecute = 0x0003 kOSASelectDisplay = 0x0004 kOSASelectScriptError = 0x0005 kOSASelectDispose = 0x0006 kOSASelectSetScriptInfo = 0x0007 kOSASelectGetScriptInfo = 0x0008 kOSASelectSetActiveProc = 0x0009 kOSASelectGetActiveProc = 0x000A kOSASelectScriptingComponentName = 0x0102 kOSASelectCompile = 0x0103 kOSASelectCopyID = 0x0104 kOSASelectCopyScript = 0x0105 kOSASelectGetSource = 0x0201 kOSASelectCoerceFromDesc = 0x0301 kOSASelectCoerceToDesc = 0x0302 kOSASelectSetSendProc = 0x0401 kOSASelectGetSendProc = 0x0402 kOSASelectSetCreateProc = 0x0403 kOSASelectGetCreateProc = 0x0404 kOSASelectSetDefaultTarget = 0x0405 kOSASelectStartRecording = 0x0501 kOSASelectStopRecording = 0x0502 kOSASelectLoadExecute = 0x0601 kOSASelectCompileExecute = 0x0602 kOSASelectDoScript = 0x0603 kOSASelectSetCurrentDialect = 0x0701 kOSASelectGetCurrentDialect = 0x0702 kOSASelectAvailableDialects = 0x0703 kOSASelectGetDialectInfo = 0x0704 kOSASelectAvailableDialectCodeList = 0x0705 kOSASelectSetResumeDispatchProc = 0x0801 kOSASelectGetResumeDispatchProc = 0x0802 kOSASelectExecuteEvent = 0x0803 kOSASelectDoEvent = 0x0804 kOSASelectMakeContext = 0x0805 kOSADebuggerCreateSession = 0x0901 kOSADebuggerGetSessionState = 0x0902 kOSADebuggerSessionStep = 0x0903 kOSADebuggerDisposeSession = 0x0904 kOSADebuggerGetStatementRanges = 0x0905 kOSADebuggerGetBreakpoint = 0x0910 kOSADebuggerSetBreakpoint = 0x0911 kOSADebuggerGetDefaultBreakpoint = 0x0912 kOSADebuggerGetCurrentCallFrame = 0x0906 kOSADebuggerGetCallFrameState = 0x0907 kOSADebuggerGetVariable = 0x0908 kOSADebuggerSetVariable = 0x0909 kOSADebuggerGetPreviousCallFrame = 0x090A kOSADebuggerDisposeCallFrame = 0x090B kOSADebuggerCountVariables = 0x090C kOSASelectComponentSpecificStart = 0x1001 kOSAModePreventGetSource = 0x00000001 kOSAModeNeverInteract = kAENeverInteract kOSAModeCanInteract = kAECanInteract kOSAModeAlwaysInteract = kAEAlwaysInteract kOSAModeDontReconnect = kAEDontReconnect kOSAModeCantSwitchLayer = 0x00000040 kOSAModeDoRecord = 0x00001000 kOSAModeCompileIntoContext = 0x00000002 kOSAModeAugmentContext = 0x00000004 kOSAModeDisplayForHumans = 0x00000008 kOSAModeDontStoreParent = 0x00010000 kOSAModeDispatchToDirectObject = 0x00020000 kOSAModeDontGetDataForArguments = 0x00040000 kOSAScriptResourceType = kOSAGenericScriptingComponentSubtype typeOSAGenericStorage = kOSAScriptResourceType kOSAErrorNumber = keyErrorNumber kOSAErrorMessage = keyErrorString kOSAErrorBriefMessage = FOUR_CHAR_CODE('errb') kOSAErrorApp = FOUR_CHAR_CODE('erap') kOSAErrorPartialResult = FOUR_CHAR_CODE('ptlr') kOSAErrorOffendingObject = FOUR_CHAR_CODE('erob') kOSAErrorExpectedType = FOUR_CHAR_CODE('errt') kOSAErrorRange = FOUR_CHAR_CODE('erng') typeOSAErrorRange = FOUR_CHAR_CODE('erng') keyOSASourceStart = FOUR_CHAR_CODE('srcs') keyOSASourceEnd = FOUR_CHAR_CODE('srce') kOSAUseStandardDispatch = kAEUseStandardDispatch kOSANoDispatch = kAENoDispatch kOSADontUsePhac = 0x0001 eNotStarted = 0 eRunnable = 1 eRunning = 2 eStopped = 3 eTerminated = 4 eStepOver = 0 eStepIn = 1 eStepOut = 2 eRun = 3 eLocal = 0 eGlobal = 1 eProperties = 2 keyProgramState = FOUR_CHAR_CODE('dsps') typeStatementRange = FOUR_CHAR_CODE('srng') keyProcedureName = FOUR_CHAR_CODE('dfnm') keyStatementRange = FOUR_CHAR_CODE('dfsr') keyLocalsNames = FOUR_CHAR_CODE('dfln') keyGlobalsNames = FOUR_CHAR_CODE('dfgn') keyParamsNames = FOUR_CHAR_CODE('dfpn') --- NEW FILE: QDOffscreen.py --- # Generated from 'QDOffscreen.h' def FOUR_CHAR_CODE(x): return x pixPurgeBit = 0 noNewDeviceBit = 1 useTempMemBit = 2 keepLocalBit = 3 useDistantHdwrMemBit = 4 useLocalHdwrMemBit = 5 pixelsPurgeableBit = 6 pixelsLockedBit = 7 mapPixBit = 16 newDepthBit = 17 alignPixBit = 18 newRowBytesBit = 19 reallocPixBit = 20 clipPixBit = 28 stretchPixBit = 29 ditherPixBit = 30 gwFlagErrBit = 31 pixPurge = 1L << pixPurgeBit noNewDevice = 1L << noNewDeviceBit useTempMem = 1L << useTempMemBit keepLocal = 1L << keepLocalBit useDistantHdwrMem = 1L << useDistantHdwrMemBit useLocalHdwrMem = 1L << useLocalHdwrMemBit pixelsPurgeable = 1L << pixelsPurgeableBit pixelsLocked = 1L << pixelsLockedBit kAllocDirectDrawSurface = 1L << 14 mapPix = 1L << mapPixBit newDepth = 1L << newDepthBit alignPix = 1L << alignPixBit newRowBytes = 1L << newRowBytesBit reallocPix = 1L << reallocPixBit clipPix = 1L << clipPixBit stretchPix = 1L << stretchPixBit ditherPix = 1L << ditherPixBit gwFlagErr = 1L << gwFlagErrBit deviceIsIndirect = (1L << 0) deviceNeedsLock = (1L << 1) deviceIsStatic = (1L << 2) deviceIsExternalBuffer = (1L << 3) deviceIsDDSurface = (1L << 4) deviceIsDCISurface = (1L << 5) deviceIsGDISurface = (1L << 6) deviceIsAScreen = (1L << 7) deviceIsOverlaySurface = (1L << 8) --- NEW FILE: Qd.py --- from _Qd import * --- NEW FILE: Qdoffs.py --- from _Qdoffs import * --- NEW FILE: Qt.py --- from _Qt import * try: _ = AddFilePreview except: raise ImportError, "Old (2.3) _Qt.so module loaded in stead of new (2.4) _Qt.so" --- NEW FILE: QuickDraw.py --- # Generated from 'QuickDraw.h' def FOUR_CHAR_CODE(x): return x normal = 0 bold = 1 italic = 2 underline = 4 outline = 8 shadow = 0x10 condense = 0x20 extend = 0x40 invalColReq = -1 srcCopy = 0 srcOr = 1 srcXor = 2 srcBic = 3 notSrcCopy = 4 notSrcOr = 5 notSrcXor = 6 notSrcBic = 7 patCopy = 8 patOr = 9 patXor = 10 patBic = 11 notPatCopy = 12 notPatOr = 13 notPatXor = 14 notPatBic = 15 grayishTextOr = 49 hilitetransfermode = 50 hilite = 50 blend = 32 addPin = 33 addOver = 34 subPin = 35 addMax = 37 adMax = 37 subOver = 38 adMin = 39 ditherCopy = 64 transparent = 36 italicBit = 1 ulineBit = 2 outlineBit = 3 shadowBit = 4 condenseBit = 5 extendBit = 6 normalBit = 0 inverseBit = 1 redBit = 4 greenBit = 3 blueBit = 2 cyanBit = 8 magentaBit = 7 yellowBit = 6 blackBit = 5 blackColor = 33 whiteColor = 30 redColor = 205 greenColor = 341 blueColor = 409 cyanColor = 273 magentaColor = 137 yellowColor = 69 picLParen = 0 picRParen = 1 clutType = 0 fixedType = 1 directType = 2 gdDevType = 0 interlacedDevice = 2 hwMirroredDevice = 4 roundedDevice = 5 hasAuxMenuBar = 6 burstDevice = 7 ext32Device = 8 ramInit = 10 mainScreen = 11 allInit = 12 screenDevice = 13 noDriver = 14 screenActive = 15 hiliteBit = 7 pHiliteBit = 0 defQDColors = 127 RGBDirect = 16 baseAddr32 = 4 sysPatListID = 0 iBeamCursor = 1 crossCursor = 2 plusCursor = 3 watchCursor = 4 kQDGrafVerbFrame = 0 kQDGrafVerbPaint = 1 kQDGrafVerbErase = 2 kQDGrafVerbInvert = 3 kQDGrafVerbFill = 4 frame = kQDGrafVerbFrame paint = kQDGrafVerbPaint erase = kQDGrafVerbErase invert = kQDGrafVerbInvert fill = kQDGrafVerbFill chunky = 0 chunkyPlanar = 1 planar = 2 singleDevicesBit = 0 dontMatchSeedsBit = 1 allDevicesBit = 2 singleDevices = 1 << singleDevicesBit dontMatchSeeds = 1 << dontMatchSeedsBit allDevices = 1 << allDevicesBit kPrinterFontStatus = 0 kPrinterScalingStatus = 1 kNoConstraint = 0 kVerticalConstraint = 1 kHorizontalConstraint = 2 k1MonochromePixelFormat = 0x00000001 k2IndexedPixelFormat = 0x00000002 k4IndexedPixelFormat = 0x00000004 k8IndexedPixelFormat = 0x00000008 k16BE555PixelFormat = 0x00000010 k24RGBPixelFormat = 0x00000018 k32ARGBPixelFormat = 0x00000020 k1IndexedGrayPixelFormat = 0x00000021 k2IndexedGrayPixelFormat = 0x00000022 k4IndexedGrayPixelFormat = 0x00000024 k8IndexedGrayPixelFormat = 0x00000028 k16LE555PixelFormat = FOUR_CHAR_CODE('L555') k16LE5551PixelFormat = FOUR_CHAR_CODE('5551') k16BE565PixelFormat = FOUR_CHAR_CODE('B565') k16LE565PixelFormat = FOUR_CHAR_CODE('L565') k24BGRPixelFormat = FOUR_CHAR_CODE('24BG') k32BGRAPixelFormat = FOUR_CHAR_CODE('BGRA') k32ABGRPixelFormat = FOUR_CHAR_CODE('ABGR') k32RGBAPixelFormat = FOUR_CHAR_CODE('RGBA') kYUVSPixelFormat = FOUR_CHAR_CODE('yuvs') kYUVUPixelFormat = FOUR_CHAR_CODE('yuvu') kYVU9PixelFormat = FOUR_CHAR_CODE('YVU9') kYUV411PixelFormat = FOUR_CHAR_CODE('Y411') kYVYU422PixelFormat = FOUR_CHAR_CODE('YVYU') kUYVY422PixelFormat = FOUR_CHAR_CODE('UYVY') kYUV211PixelFormat = FOUR_CHAR_CODE('Y211') k2vuyPixelFormat = FOUR_CHAR_CODE('2vuy') kCursorImageMajorVersion = 0x0001 kCursorImageMinorVersion = 0x0000 kQDParseRegionFromTop = (1 << 0) kQDParseRegionFromBottom = (1 << 1) kQDParseRegionFromLeft = (1 << 2) kQDParseRegionFromRight = (1 << 3) kQDParseRegionFromTopLeft = kQDParseRegionFromTop | kQDParseRegionFromLeft kQDParseRegionFromBottomRight = kQDParseRegionFromBottom | kQDParseRegionFromRight kQDRegionToRectsMsgInit = 1 kQDRegionToRectsMsgParse = 2 kQDRegionToRectsMsgTerminate = 3 colorXorXFer = 52 noiseXFer = 53 customXFer = 54 kXFer1PixelAtATime = 0x00000001 kXFerConvertPixelToRGB32 = 0x00000002 kCursorComponentsVersion = 0x00010001 kCursorComponentType = FOUR_CHAR_CODE('curs') cursorDoesAnimate = 1L << 0 cursorDoesHardware = 1L << 1 cursorDoesUnreadableScreenBits = 1L << 2 kRenderCursorInHardware = 1L << 0 kRenderCursorInSoftware = 1L << 1 kCursorComponentInit = 0x0001 kCursorComponentGetInfo = 0x0002 kCursorComponentSetOutputMode = 0x0003 kCursorComponentSetData = 0x0004 kCursorComponentReconfigure = 0x0005 kCursorComponentDraw = 0x0006 kCursorComponentErase = 0x0007 kCursorComponentMove = 0x0008 kCursorComponentAnimate = 0x0009 kCursorComponentLastReserved = 0x0050 # Generated from 'QuickDrawText.h' def FOUR_CHAR_CODE(x): return x normal = 0 bold = 1 italic = 2 underline = 4 outline = 8 shadow = 0x10 condense = 0x20 extend = 0x40 leftCaret = 0 rightCaret = -1 kHilite = 1 smLeftCaret = 0 smRightCaret = -1 smHilite = 1 onlyStyleRun = 0 leftStyleRun = 1 rightStyleRun = 2 middleStyleRun = 3 smOnlyStyleRun = 0 smLeftStyleRun = 1 smRightStyleRun = 2 smMiddleStyleRun = 3 truncEnd = 0 truncMiddle = 0x4000 smTruncEnd = 0 smTruncMiddle = 0x4000 notTruncated = 0 truncated = 1 truncErr = -1 smNotTruncated = 0 smTruncated = 1 smTruncErr = -1 smBreakWord = 0 smBreakChar = 1 smBreakOverflow = 2 tfAntiAlias = 1 << 0 tfUnicode = 1 << 1 --- NEW FILE: QuickTime.py --- # Generated from 'Movies.h' def FOUR_CHAR_CODE(x): return x xmlIdentifierUnrecognized = -1 kControllerMinimum = -0xf777 notImplementedMusicOSErr = -2071 cantSendToSynthesizerOSErr = -2072 cantReceiveFromSynthesizerOSErr = -2073 illegalVoiceAllocationOSErr = -2074 illegalPartOSErr = -2075 illegalChannelOSErr = -2076 illegalKnobOSErr = -2077 illegalKnobValueOSErr = -2078 illegalInstrumentOSErr = -2079 illegalControllerOSErr = -2080 midiManagerAbsentOSErr = -2081 synthesizerNotRespondingOSErr = -2082 synthesizerOSErr = -2083 illegalNoteChannelOSErr = -2084 [...3429 lines suppressed...] kTuneGetTimeScaleSelect = 0x0007 kTuneGetIndexedNoteChannelSelect = 0x0008 kTuneQueueSelect = 0x000A kTuneInstantSelect = 0x000B kTuneGetStatusSelect = 0x000C kTuneStopSelect = 0x000D kTuneSetVolumeSelect = 0x0010 kTuneGetVolumeSelect = 0x0011 kTunePrerollSelect = 0x0012 kTuneUnrollSelect = 0x0013 kTuneSetNoteChannelsSelect = 0x0014 kTuneSetPartTransposeSelect = 0x0015 kTuneGetNoteAllocatorSelect = 0x0017 kTuneSetSofterSelect = 0x0018 kTuneTaskSelect = 0x0019 kTuneSetBalanceSelect = 0x001A kTuneSetSoundLocalizationSelect = 0x001B kTuneSetHeaderWithSizeSelect = 0x001C kTuneSetPartMixSelect = 0x001D kTuneGetPartMixSelect = 0x001E --- NEW FILE: Res.py --- try: from OverrideFrom23._Res import * except ImportError: from _Res import * --- NEW FILE: Resources.py --- # Generated from 'Resources.h' resSysHeap = 64 resPurgeable = 32 resLocked = 16 resProtected = 8 resPreload = 4 resChanged = 2 mapReadOnly = 128 mapCompact = 64 mapChanged = 32 resSysRefBit = 7 resSysHeapBit = 6 resPurgeableBit = 5 resLockedBit = 4 resProtectedBit = 3 resPreloadBit = 2 resChangedBit = 1 mapReadOnlyBit = 7 mapCompactBit = 6 mapChangedBit = 5 kResFileNotOpened = -1 kSystemResFile = 0 kRsrcChainBelowSystemMap = 0 kRsrcChainBelowApplicationMap = 1 kRsrcChainAboveApplicationMap = 2 kRsrcChainAboveAllMaps = 4 --- NEW FILE: Scrap.py --- from _Scrap import * --- NEW FILE: Snd.py --- from _Snd import * --- NEW FILE: Sndihooks.py --- from _Sndihooks import * --- NEW FILE: Sound.py --- # Generated from 'Sound.h' def FOUR_CHAR_CODE(x): return x soundListRsrc = FOUR_CHAR_CODE('snd ') kSimpleBeepID = 1 # rate48khz = (long)0xBB800000 # rate44khz = (long)0xAC440000 rate32khz = 0x7D000000 rate22050hz = 0x56220000 rate22khz = 0x56EE8BA3 rate16khz = 0x3E800000 rate11khz = 0x2B7745D1 rate11025hz = 0x2B110000 rate8khz = 0x1F400000 sampledSynth = 5 squareWaveSynth = 1 waveTableSynth = 3 MACE3snthID = 11 MACE6snthID = 13 kMiddleC = 60 kNoVolume = 0 kFullVolume = 0x0100 stdQLength = 128 dataOffsetFlag = 0x8000 kUseOptionalOutputDevice = -1 notCompressed = 0 fixedCompression = -1 variableCompression = -2 twoToOne = 1 eightToThree = 2 threeToOne = 3 sixToOne = 4 sixToOnePacketSize = 8 threeToOnePacketSize = 16 stateBlockSize = 64 leftOverBlockSize = 32 firstSoundFormat = 0x0001 secondSoundFormat = 0x0002 dbBufferReady = 0x00000001 dbLastBuffer = 0x00000004 sysBeepDisable = 0x0000 sysBeepEnable = (1 << 0) sysBeepSynchronous = (1 << 1) unitTypeNoSelection = 0xFFFF unitTypeSeconds = 0x0000 stdSH = 0x00 extSH = 0xFF cmpSH = 0xFE nullCmd = 0 quietCmd = 3 flushCmd = 4 reInitCmd = 5 waitCmd = 10 pauseCmd = 11 resumeCmd = 12 callBackCmd = 13 syncCmd = 14 availableCmd = 24 versionCmd = 25 volumeCmd = 46 getVolumeCmd = 47 clockComponentCmd = 50 getClockComponentCmd = 51 scheduledSoundCmd = 52 linkSoundComponentsCmd = 53 soundCmd = 80 bufferCmd = 81 rateMultiplierCmd = 86 getRateMultiplierCmd = 87 initCmd = 1 freeCmd = 2 totalLoadCmd = 26 loadCmd = 27 freqDurationCmd = 40 restCmd = 41 freqCmd = 42 ampCmd = 43 timbreCmd = 44 getAmpCmd = 45 waveTableCmd = 60 phaseCmd = 61 rateCmd = 82 continueCmd = 83 doubleBufferCmd = 84 getRateCmd = 85 sizeCmd = 90 convertCmd = 91 waveInitChannelMask = 0x07 waveInitChannel0 = 0x04 waveInitChannel1 = 0x05 waveInitChannel2 = 0x06 waveInitChannel3 = 0x07 initChan0 = waveInitChannel0 initChan1 = waveInitChannel1 initChan2 = waveInitChannel2 initChan3 = waveInitChannel3 outsideCmpSH = 0 insideCmpSH = 1 aceSuccess = 0 aceMemFull = 1 aceNilBlock = 2 aceBadComp = 3 aceBadEncode = 4 aceBadDest = 5 aceBadCmd = 6 initChanLeft = 0x0002 initChanRight = 0x0003 initNoInterp = 0x0004 initNoDrop = 0x0008 initMono = 0x0080 initStereo = 0x00C0 initMACE3 = 0x0300 initMACE6 = 0x0400 initPanMask = 0x0003 initSRateMask = 0x0030 initStereoMask = 0x00C0 initCompMask = 0xFF00 siActiveChannels = FOUR_CHAR_CODE('chac') siActiveLevels = FOUR_CHAR_CODE('lmac') siAGCOnOff = FOUR_CHAR_CODE('agc ') siAsync = FOUR_CHAR_CODE('asyn') siAVDisplayBehavior = FOUR_CHAR_CODE('avdb') siChannelAvailable = FOUR_CHAR_CODE('chav') siCompressionAvailable = FOUR_CHAR_CODE('cmav') siCompressionChannels = FOUR_CHAR_CODE('cpct') siCompressionFactor = FOUR_CHAR_CODE('cmfa') siCompressionHeader = FOUR_CHAR_CODE('cmhd') siCompressionNames = FOUR_CHAR_CODE('cnam') siCompressionParams = FOUR_CHAR_CODE('evaw') siCompressionSampleRate = FOUR_CHAR_CODE('cprt') siCompressionType = FOUR_CHAR_CODE('comp') siContinuous = FOUR_CHAR_CODE('cont') siDecompressionParams = FOUR_CHAR_CODE('wave') siDeviceBufferInfo = FOUR_CHAR_CODE('dbin') siDeviceConnected = FOUR_CHAR_CODE('dcon') siDeviceIcon = FOUR_CHAR_CODE('icon') siDeviceName = FOUR_CHAR_CODE('name') siEQSpectrumBands = FOUR_CHAR_CODE('eqsb') siEQSpectrumLevels = FOUR_CHAR_CODE('eqlv') siEQSpectrumOnOff = FOUR_CHAR_CODE('eqlo') siEQSpectrumResolution = FOUR_CHAR_CODE('eqrs') siEQToneControlGain = FOUR_CHAR_CODE('eqtg') siEQToneControlOnOff = FOUR_CHAR_CODE('eqtc') siHardwareBalance = FOUR_CHAR_CODE('hbal') siHardwareBalanceSteps = FOUR_CHAR_CODE('hbls') siHardwareBass = FOUR_CHAR_CODE('hbas') siHardwareBassSteps = FOUR_CHAR_CODE('hbst') siHardwareBusy = FOUR_CHAR_CODE('hwbs') siHardwareFormat = FOUR_CHAR_CODE('hwfm') siHardwareMute = FOUR_CHAR_CODE('hmut') siHardwareMuteNoPrefs = FOUR_CHAR_CODE('hmnp') siHardwareTreble = FOUR_CHAR_CODE('htrb') siHardwareTrebleSteps = FOUR_CHAR_CODE('hwts') siHardwareVolume = FOUR_CHAR_CODE('hvol') siHardwareVolumeSteps = FOUR_CHAR_CODE('hstp') siHeadphoneMute = FOUR_CHAR_CODE('pmut') siHeadphoneVolume = FOUR_CHAR_CODE('pvol') siHeadphoneVolumeSteps = FOUR_CHAR_CODE('hdst') siInputAvailable = FOUR_CHAR_CODE('inav') siInputGain = FOUR_CHAR_CODE('gain') siInputSource = FOUR_CHAR_CODE('sour') siInputSourceNames = FOUR_CHAR_CODE('snam') siLevelMeterOnOff = FOUR_CHAR_CODE('lmet') siModemGain = FOUR_CHAR_CODE('mgai') siMonitorAvailable = FOUR_CHAR_CODE('mnav') siMonitorSource = FOUR_CHAR_CODE('mons') siNumberChannels = FOUR_CHAR_CODE('chan') siOptionsDialog = FOUR_CHAR_CODE('optd') siOSTypeInputSource = FOUR_CHAR_CODE('inpt') siOSTypeInputAvailable = FOUR_CHAR_CODE('inav') siOutputDeviceName = FOUR_CHAR_CODE('onam') siPlayThruOnOff = FOUR_CHAR_CODE('plth') siPostMixerSoundComponent = FOUR_CHAR_CODE('psmx') siPreMixerSoundComponent = FOUR_CHAR_CODE('prmx') siQuality = FOUR_CHAR_CODE('qual') siRateMultiplier = FOUR_CHAR_CODE('rmul') siRecordingQuality = FOUR_CHAR_CODE('qual') siSampleRate = FOUR_CHAR_CODE('srat') siSampleRateAvailable = FOUR_CHAR_CODE('srav') siSampleSize = FOUR_CHAR_CODE('ssiz') siSampleSizeAvailable = FOUR_CHAR_CODE('ssav') siSetupCDAudio = FOUR_CHAR_CODE('sucd') siSetupModemAudio = FOUR_CHAR_CODE('sumd') siSlopeAndIntercept = FOUR_CHAR_CODE('flap') siSoundClock = FOUR_CHAR_CODE('sclk') siUseThisSoundClock = FOUR_CHAR_CODE('sclc') siSpeakerMute = FOUR_CHAR_CODE('smut') siSpeakerVolume = FOUR_CHAR_CODE('svol') siSSpCPULoadLimit = FOUR_CHAR_CODE('3dll') siSSpLocalization = FOUR_CHAR_CODE('3dif') siSSpSpeakerSetup = FOUR_CHAR_CODE('3dst') siStereoInputGain = FOUR_CHAR_CODE('sgai') siSubwooferMute = FOUR_CHAR_CODE('bmut') siTerminalType = FOUR_CHAR_CODE('ttyp') siTwosComplementOnOff = FOUR_CHAR_CODE('twos') siVendorProduct = FOUR_CHAR_CODE('vpro') siVolume = FOUR_CHAR_CODE('volu') siVoxRecordInfo = FOUR_CHAR_CODE('voxr') siVoxStopInfo = FOUR_CHAR_CODE('voxs') siWideStereo = FOUR_CHAR_CODE('wide') siSupportedExtendedFlags = FOUR_CHAR_CODE('exfl') siRateConverterRollOffSlope = FOUR_CHAR_CODE('rcdb') siOutputLatency = FOUR_CHAR_CODE('olte') siCloseDriver = FOUR_CHAR_CODE('clos') siInitializeDriver = FOUR_CHAR_CODE('init') siPauseRecording = FOUR_CHAR_CODE('paus') siUserInterruptProc = FOUR_CHAR_CODE('user') # kInvalidSource = (long)0xFFFFFFFF kNoSource = FOUR_CHAR_CODE('none') kCDSource = FOUR_CHAR_CODE('cd ') kExtMicSource = FOUR_CHAR_CODE('emic') kSoundInSource = FOUR_CHAR_CODE('sinj') kRCAInSource = FOUR_CHAR_CODE('irca') kTVFMTunerSource = FOUR_CHAR_CODE('tvfm') kDAVInSource = FOUR_CHAR_CODE('idav') kIntMicSource = FOUR_CHAR_CODE('imic') kMediaBaySource = FOUR_CHAR_CODE('mbay') kModemSource = FOUR_CHAR_CODE('modm') kPCCardSource = FOUR_CHAR_CODE('pcm ') kZoomVideoSource = FOUR_CHAR_CODE('zvpc') kDVDSource = FOUR_CHAR_CODE('dvda') kMicrophoneArray = FOUR_CHAR_CODE('mica') kNoSoundComponentType = FOUR_CHAR_CODE('****') kSoundComponentType = FOUR_CHAR_CODE('sift') kSoundComponentPPCType = FOUR_CHAR_CODE('nift') kRate8SubType = FOUR_CHAR_CODE('ratb') kRate16SubType = FOUR_CHAR_CODE('ratw') kConverterSubType = FOUR_CHAR_CODE('conv') kSndSourceSubType = FOUR_CHAR_CODE('sour') kMixerType = FOUR_CHAR_CODE('mixr') kMixer8SubType = FOUR_CHAR_CODE('mixb') kMixer16SubType = FOUR_CHAR_CODE('mixw') kSoundInputDeviceType = FOUR_CHAR_CODE('sinp') kWaveInSubType = FOUR_CHAR_CODE('wavi') kWaveInSnifferSubType = FOUR_CHAR_CODE('wisn') kSoundOutputDeviceType = FOUR_CHAR_CODE('sdev') kClassicSubType = FOUR_CHAR_CODE('clas') kASCSubType = FOUR_CHAR_CODE('asc ') kDSPSubType = FOUR_CHAR_CODE('dsp ') kAwacsSubType = FOUR_CHAR_CODE('awac') kGCAwacsSubType = FOUR_CHAR_CODE('awgc') kSingerSubType = FOUR_CHAR_CODE('sing') kSinger2SubType = FOUR_CHAR_CODE('sng2') kWhitSubType = FOUR_CHAR_CODE('whit') kSoundBlasterSubType = FOUR_CHAR_CODE('sbls') kWaveOutSubType = FOUR_CHAR_CODE('wavo') kWaveOutSnifferSubType = FOUR_CHAR_CODE('wosn') kDirectSoundSubType = FOUR_CHAR_CODE('dsnd') kDirectSoundSnifferSubType = FOUR_CHAR_CODE('dssn') kUNIXsdevSubType = FOUR_CHAR_CODE('un1x') kUSBSubType = FOUR_CHAR_CODE('usb ') kBlueBoxSubType = FOUR_CHAR_CODE('bsnd') kSoundCompressor = FOUR_CHAR_CODE('scom') kSoundDecompressor = FOUR_CHAR_CODE('sdec') kAudioComponentType = FOUR_CHAR_CODE('adio') kAwacsPhoneSubType = FOUR_CHAR_CODE('hphn') kAudioVisionSpeakerSubType = FOUR_CHAR_CODE('telc') kAudioVisionHeadphoneSubType = FOUR_CHAR_CODE('telh') kPhilipsFaderSubType = FOUR_CHAR_CODE('tvav') kSGSToneSubType = FOUR_CHAR_CODE('sgs0') kSoundEffectsType = FOUR_CHAR_CODE('snfx') kEqualizerSubType = FOUR_CHAR_CODE('eqal') kSSpLocalizationSubType = FOUR_CHAR_CODE('snd3') kSoundNotCompressed = FOUR_CHAR_CODE('NONE') k8BitOffsetBinaryFormat = FOUR_CHAR_CODE('raw ') k16BitBigEndianFormat = FOUR_CHAR_CODE('twos') k16BitLittleEndianFormat = FOUR_CHAR_CODE('sowt') kFloat32Format = FOUR_CHAR_CODE('fl32') kFloat64Format = FOUR_CHAR_CODE('fl64') k24BitFormat = FOUR_CHAR_CODE('in24') k32BitFormat = FOUR_CHAR_CODE('in32') k32BitLittleEndianFormat = FOUR_CHAR_CODE('23ni') kMACE3Compression = FOUR_CHAR_CODE('MAC3') kMACE6Compression = FOUR_CHAR_CODE('MAC6') kCDXA4Compression = FOUR_CHAR_CODE('cdx4') kCDXA2Compression = FOUR_CHAR_CODE('cdx2') kIMACompression = FOUR_CHAR_CODE('ima4') kULawCompression = FOUR_CHAR_CODE('ulaw') kALawCompression = FOUR_CHAR_CODE('alaw') kMicrosoftADPCMFormat = 0x6D730002 kDVIIntelIMAFormat = 0x6D730011 kDVAudioFormat = FOUR_CHAR_CODE('dvca') kQDesignCompression = FOUR_CHAR_CODE('QDMC') kQDesign2Compression = FOUR_CHAR_CODE('QDM2') kQUALCOMMCompression = FOUR_CHAR_CODE('Qclp') kOffsetBinary = k8BitOffsetBinaryFormat kTwosComplement = k16BitBigEndianFormat kLittleEndianFormat = k16BitLittleEndianFormat kMPEGLayer3Format = 0x6D730055 kFullMPEGLay3Format = FOUR_CHAR_CODE('.mp3') k16BitNativeEndianFormat = k16BitLittleEndianFormat k16BitNonNativeEndianFormat = k16BitBigEndianFormat k16BitNativeEndianFormat = k16BitBigEndianFormat k16BitNonNativeEndianFormat = k16BitLittleEndianFormat k8BitRawIn = (1 << 0) k8BitTwosIn = (1 << 1) k16BitIn = (1 << 2) kStereoIn = (1 << 3) k8BitRawOut = (1 << 8) k8BitTwosOut = (1 << 9) k16BitOut = (1 << 10) kStereoOut = (1 << 11) kReverse = (1L << 16) kRateConvert = (1L << 17) kCreateSoundSource = (1L << 18) kVMAwareness = (1L << 21) kHighQuality = (1L << 22) kNonRealTime = (1L << 23) kSourcePaused = (1 << 0) kPassThrough = (1L << 16) kNoSoundComponentChain = (1L << 17) kNoMixing = (1 << 0) kNoSampleRateConversion = (1 << 1) kNoSampleSizeConversion = (1 << 2) kNoSampleFormatConversion = (1 << 3) kNoChannelConversion = (1 << 4) kNoDecompression = (1 << 5) kNoVolumeConversion = (1 << 6) kNoRealtimeProcessing = (1 << 7) kScheduledSource = (1 << 8) kNonInterleavedBuffer = (1 << 9) kNonPagingMixer = (1 << 10) kSoundConverterMixer = (1 << 11) kPagingMixer = (1 << 12) kVMAwareMixer = (1 << 13) kExtendedSoundData = (1 << 14) kBestQuality = (1 << 0) kInputMask = 0x000000FF kOutputMask = 0x0000FF00 kOutputShift = 8 kActionMask = 0x00FF0000 kSoundComponentBits = 0x00FFFFFF kAudioFormatAtomType = FOUR_CHAR_CODE('frma') kAudioEndianAtomType = FOUR_CHAR_CODE('enda') kAudioVBRAtomType = FOUR_CHAR_CODE('vbra') kAudioTerminatorAtomType = 0 kAVDisplayHeadphoneRemove = 0 kAVDisplayHeadphoneInsert = 1 kAVDisplayPlainTalkRemove = 2 kAVDisplayPlainTalkInsert = 3 audioAllChannels = 0 audioLeftChannel = 1 audioRightChannel = 2 audioUnmuted = 0 audioMuted = 1 audioDoesMono = (1L << 0) audioDoesStereo = (1L << 1) audioDoesIndependentChannels = (1L << 2) siCDQuality = FOUR_CHAR_CODE('cd ') siBestQuality = FOUR_CHAR_CODE('best') siBetterQuality = FOUR_CHAR_CODE('betr') siGoodQuality = FOUR_CHAR_CODE('good') siNoneQuality = FOUR_CHAR_CODE('none') siDeviceIsConnected = 1 siDeviceNotConnected = 0 siDontKnowIfConnected = -1 siReadPermission = 0 siWritePermission = 1 kSoundConverterDidntFillBuffer = (1 << 0) kSoundConverterHasLeftOverData = (1 << 1) kExtendedSoundSampleCountNotValid = 1L << 0 kExtendedSoundBufferSizeValid = 1L << 1 kScheduledSoundDoScheduled = 1 << 0 kScheduledSoundDoCallBack = 1 << 1 kScheduledSoundExtendedHdr = 1 << 2 kSoundComponentInitOutputDeviceSelect = 0x0001 kSoundComponentSetSourceSelect = 0x0002 kSoundComponentGetSourceSelect = 0x0003 kSoundComponentGetSourceDataSelect = 0x0004 kSoundComponentSetOutputSelect = 0x0005 kSoundComponentAddSourceSelect = 0x0101 kSoundComponentRemoveSourceSelect = 0x0102 kSoundComponentGetInfoSelect = 0x0103 kSoundComponentSetInfoSelect = 0x0104 kSoundComponentStartSourceSelect = 0x0105 kSoundComponentStopSourceSelect = 0x0106 kSoundComponentPauseSourceSelect = 0x0107 kSoundComponentPlaySourceBufferSelect = 0x0108 kAudioGetVolumeSelect = 0x0000 kAudioSetVolumeSelect = 0x0001 kAudioGetMuteSelect = 0x0002 kAudioSetMuteSelect = 0x0003 kAudioSetToDefaultsSelect = 0x0004 kAudioGetInfoSelect = 0x0005 kAudioGetBassSelect = 0x0006 kAudioSetBassSelect = 0x0007 kAudioGetTrebleSelect = 0x0008 kAudioSetTrebleSelect = 0x0009 kAudioGetOutputDeviceSelect = 0x000A kAudioMuteOnEventSelect = 0x0081 kDelegatedSoundComponentSelectors = 0x0100 kSndInputReadAsyncSelect = 0x0001 kSndInputReadSyncSelect = 0x0002 kSndInputPauseRecordingSelect = 0x0003 kSndInputResumeRecordingSelect = 0x0004 kSndInputStopRecordingSelect = 0x0005 kSndInputGetStatusSelect = 0x0006 kSndInputGetDeviceInfoSelect = 0x0007 kSndInputSetDeviceInfoSelect = 0x0008 kSndInputInitHardwareSelect = 0x0009 --- NEW FILE: TE.py --- from _TE import * --- NEW FILE: TextEdit.py --- # Generated from 'TextEdit.h' teJustLeft = 0 teJustCenter = 1 teJustRight = -1 teForceLeft = -2 teFlushDefault = 0 teCenter = 1 teFlushRight = -1 teFlushLeft = -2 fontBit = 0 faceBit = 1 sizeBit = 2 clrBit = 3 addSizeBit = 4 toggleBit = 5 doFont = 1 doFace = 2 doSize = 4 doColor = 8 doAll = 15 addSize = 16 doToggle = 32 EOLHook = 0 DRAWHook = 4 WIDTHHook = 8 HITTESTHook = 12 nWIDTHHook = 24 TextWidthHook = 28 intEOLHook = 0 intDrawHook = 1 intWidthHook = 2 intHitTestHook = 3 intNWidthHook = 6 intTextWidthHook = 7 intInlineInputTSMTEPreUpdateHook = 8 intInlineInputTSMTEPostUpdateHook = 9 teFAutoScroll = 0 teFTextBuffering = 1 teFOutlineHilite = 2 teFInlineInput = 3 teFUseWhiteBackground = 4 teFUseInlineInput = 5 teFInlineInputAutoScroll = 6 teFIdleWithEventLoopTimer = 7 teBitClear = 0 teBitSet = 1 teBitTest = -1 teWordSelect = 4 teWordDrag = 8 teFromFind = 12 teFromRecal = 16 teFind = 0 teHighlight = 1 teDraw = -1 teCaret = -2 teFUseTextServices = 4 --- NEW FILE: WASTEconst.py --- # Generated from 'WASTE.h' kPascalStackBased = None # workaround for header parsing def FOUR_CHAR_CODE(x): return x weCantUndoErr = -10015 weEmptySelectionErr = -10013 weUnknownObjectTypeErr = -9478 weObjectNotFoundErr = -9477 weReadOnlyErr = -9476 weTextNotFoundErr = -9474 weInvalidTextEncodingErr = -9473 weDuplicateAttributeErr = -9472 weInvalidAttributeSizeErr = -9471 weReadOnlyAttributeErr = -9470 weOddByteCountErr = -9469 weHandlerNotFoundErr = -1717 weNotHandledErr = -1708 weNewerVersionErr = -1706 weCorruptDataErr = -1702 weProtocolErr = -603 weUndefinedSelectorErr = -50 weFlushLeft = -2 weFlushRight = -1 weFlushDefault = 0 weCenter = 1 weJustify = 2 weDirDefault = 1 weDirRightToLeft = -1 weDirLeftToRight = 0 weDoFont = 0x0001 weDoFace = 0x0002 weDoSize = 0x0004 weDoColor = 0x0008 weDoAll = weDoFont | weDoFace | weDoSize | weDoColor weDoAddSize = 0x0010 weDoToggleFace = 0x0020 weDoReplaceFace = 0x0040 weDoPreserveScript = 0x0080 weDoExtractSubscript = 0x0100 weDoFaceMask = 0x0200 weDoDirection = 0x00000001 weDoAlignment = 0x00000002 weDoLeftIndent = 0x00000004 weDoRightIndent = 0x00000008 weDoFirstLineIndent = 0x00000010 weDoLineSpacing = 0x00000020 weDoSpaceBefore = 0x00000040 weDoSpaceAfter = 0x00000080 weDoBottomBorderStyle = 0x00000400 kLeadingEdge = -1 kTrailingEdge = 0 kObjectEdge = 2 weFAutoScroll = 0 weFOutlineHilite = 2 weFReadOnly = 5 weFUndo = 6 weFIntCutAndPaste = 7 weFDragAndDrop = 8 weFInhibitRecal = 9 weFUseTempMem = 10 weFDrawOffscreen = 11 weFInhibitRedraw = 12 weFMonoStyled = 13 weFMultipleUndo = 14 weFNoKeyboardSync = 29 weFInhibitICSupport = 30 weFInhibitColor = 31 # weDoAutoScroll = 1UL << weFAutoScroll # weDoOutlineHilite = 1UL << weFOutlineHilite # weDoReadOnly = 1UL << weFReadOnly # weDoUndo = 1UL << weFUndo # weDoIntCutAndPaste = 1UL << weFIntCutAndPaste # weDoDragAndDrop = 1UL << weFDragAndDrop # weDoInhibitRecal = 1UL << weFInhibitRecal # weDoUseTempMem = 1UL << weFUseTempMem # weDoDrawOffscreen = 1UL << weFDrawOffscreen # weDoInhibitRedraw = 1UL << weFInhibitRedraw # weDoMonoStyled = 1UL << weFMonoStyled # weDoMultipleUndo = 1UL << weFMultipleUndo # weDoNoKeyboardSync = 1UL << weFNoKeyboardSync # weDoInhibitICSupport = 1UL << weFInhibitICSupport # weDoInhibitColor = 1UL << weFInhibitColor weBitToggle = -2 weBitTest = -1 weBitClear = 0 weBitSet = 1 weLowerCase = 0 weUpperCase = 1 weFindWholeWords = 0x00000001 weFindCaseInsensitive = 0x00000002 weFindDiacriticalInsensitive = 0x00000004 wePutIntCutAndPaste = 0x00000001 wePutAddToTypingSequence = 0x00000002 wePutDetectUnicodeBOM = 0x00000200 weStreamDestinationKindMask = 0x000000FF weStreamIncludeObjects = 0x00000100 weGetAddUnicodeBOM = 0x00000200 weGetLittleEndian = 0x00000400 weTagFontFamily = FOUR_CHAR_CODE('font') weTagFontSize = FOUR_CHAR_CODE('ptsz') weTagPlain = FOUR_CHAR_CODE('plan') weTagBold = FOUR_CHAR_CODE('bold') weTagItalic = FOUR_CHAR_CODE('ital') weTagUnderline = FOUR_CHAR_CODE('undl') weTagOutline = FOUR_CHAR_CODE('outl') weTagShadow = FOUR_CHAR_CODE('shad') weTagCondensed = FOUR_CHAR_CODE('cond') weTagExtended = FOUR_CHAR_CODE('pexp') weTagStrikethrough = FOUR_CHAR_CODE('strk') weTagTextColor = FOUR_CHAR_CODE('colr') weTagBackgroundColor = FOUR_CHAR_CODE('pbcl') weTagTransferMode = FOUR_CHAR_CODE('pptm') weTagVerticalShift = FOUR_CHAR_CODE('xshf') weTagAlignment = FOUR_CHAR_CODE('pjst') weTagDirection = FOUR_CHAR_CODE('LDIR') weTagLineSpacing = FOUR_CHAR_CODE('ledg') weTagLeftIndent = FOUR_CHAR_CODE('lein') weTagRightIndent = FOUR_CHAR_CODE('riin') weTagFirstLineIndent = FOUR_CHAR_CODE('fidt') weTagSpaceBefore = FOUR_CHAR_CODE('spbe') weTagSpaceAfter = FOUR_CHAR_CODE('spaf') weTagBottomBorderStyle = FOUR_CHAR_CODE('BBRD') weTagForceFontFamily = FOUR_CHAR_CODE('ffnt') weTagAddFontSize = FOUR_CHAR_CODE('+siz') weTagAddVerticalShift = FOUR_CHAR_CODE('+shf') weTagTextEncoding = FOUR_CHAR_CODE('ptxe') weTagQDStyles = FOUR_CHAR_CODE('qdst') weTagTETextStyle = FOUR_CHAR_CODE('tets') weTagAlignmentDefault = FOUR_CHAR_CODE('deft') weTagAlignmentLeft = FOUR_CHAR_CODE('left') weTagAlignmentCenter = FOUR_CHAR_CODE('cent') weTagAlignmentRight = FOUR_CHAR_CODE('rght') weTagAlignmentFull = FOUR_CHAR_CODE('full') weTagDirectionDefault = FOUR_CHAR_CODE('deft') weTagDirectionLeftToRight = FOUR_CHAR_CODE('L->R') weTagDirectionRightToLeft = FOUR_CHAR_CODE('R->L') weTagBorderStyleNone = FOUR_CHAR_CODE('NONE') weTagBorderStyleThin = FOUR_CHAR_CODE('SLDL') weTagBorderStyleDotted = FOUR_CHAR_CODE('DTDL') weTagBorderStyleThick = FOUR_CHAR_CODE('THKL') weLineSpacingSingle = 0x00000000 weLineSpacingOneAndHalf = 0x00008000 weLineSpacingDouble = 0x00010000 weCharByteHook = FOUR_CHAR_CODE('cbyt') weCharToPixelHook = FOUR_CHAR_CODE('c2p ') weCharTypeHook = FOUR_CHAR_CODE('ctyp') weClickLoop = FOUR_CHAR_CODE('clik') weCurrentDrag = FOUR_CHAR_CODE('drag') weDrawTextHook = FOUR_CHAR_CODE('draw') weDrawTSMHiliteHook = FOUR_CHAR_CODE('dtsm') weEraseHook = FOUR_CHAR_CODE('eras') weFontFamilyToNameHook = FOUR_CHAR_CODE('ff2n') weFontNameToFamilyHook = FOUR_CHAR_CODE('fn2f') weFluxProc = FOUR_CHAR_CODE('flux') weHiliteDropAreaHook = FOUR_CHAR_CODE('hidr') weLineBreakHook = FOUR_CHAR_CODE('lbrk') wePixelToCharHook = FOUR_CHAR_CODE('p2c ') wePort = FOUR_CHAR_CODE('port') wePreTrackDragHook = FOUR_CHAR_CODE('ptrk') weRefCon = FOUR_CHAR_CODE('refc') weScrollProc = FOUR_CHAR_CODE('scrl') weText = FOUR_CHAR_CODE('text') weTranslateDragHook = FOUR_CHAR_CODE('xdrg') weTranslucencyThreshold = FOUR_CHAR_CODE('tluc') weTSMDocumentID = FOUR_CHAR_CODE('tsmd') weTSMPreUpdate = FOUR_CHAR_CODE('pre ') weTSMPostUpdate = FOUR_CHAR_CODE('post') weURLHint = FOUR_CHAR_CODE('urlh') weWordBreakHook = FOUR_CHAR_CODE('wbrk') weNewHandler = FOUR_CHAR_CODE('new ') weDisposeHandler = FOUR_CHAR_CODE('free') weDrawHandler = FOUR_CHAR_CODE('draw') weClickHandler = FOUR_CHAR_CODE('clik') weStreamHandler = FOUR_CHAR_CODE('strm') weHoverHandler = FOUR_CHAR_CODE('hovr') kTypeText = FOUR_CHAR_CODE('TEXT') kTypeStyles = FOUR_CHAR_CODE('styl') kTypeSoup = FOUR_CHAR_CODE('SOUP') kTypeFontTable = FOUR_CHAR_CODE('FISH') kTypeParaFormat = FOUR_CHAR_CODE('WEpf') kTypeRulerScrap = FOUR_CHAR_CODE('WEru') kTypeCharFormat = FOUR_CHAR_CODE('WEcf') kTypeStyleScrap = FOUR_CHAR_CODE('WEst') kTypeUnicodeText = FOUR_CHAR_CODE('utxt') kTypeUTF8Text = FOUR_CHAR_CODE('UTF8') kTypeStyledText = FOUR_CHAR_CODE('STXT') weAKNone = 0 weAKUnspecified = 1 weAKTyping = 2 weAKCut = 3 weAKPaste = 4 weAKClear = 5 weAKDrag = 6 weAKSetStyle = 7 weAKSetRuler = 8 weAKBackspace = 9 weAKFwdDelete = 10 weAKCaseChange = 11 weAKObjectChange = 12 weToScrap = 0 weToDrag = 1 weToSoup = 2 weMouseEnter = 0 weMouseWithin = 1 weMouseLeave = 2 kCurrentSelection = -1 kNullStyle = -2 --- NEW FILE: Win.py --- from _Win import * --- NEW FILE: Windows.py --- # Generated from 'MacWindows.h' def FOUR_CHAR_CODE(x): return x false = 0 true = 1 kWindowNoConstrainAttribute = 0x80000000 kAlertWindowClass = 1 kMovableAlertWindowClass = 2 kModalWindowClass = 3 kMovableModalWindowClass = 4 kFloatingWindowClass = 5 kDocumentWindowClass = 6 kUtilityWindowClass = 8 kHelpWindowClass = 10 kSheetWindowClass = 11 kToolbarWindowClass = 12 kPlainWindowClass = 13 kOverlayWindowClass = 14 kSheetAlertWindowClass = 15 kAltPlainWindowClass = 16 kDrawerWindowClass = 20 # kAllWindowClasses = (unsigned long)0xFFFFFFFF kWindowNoAttributes = 0L kWindowCloseBoxAttribute = (1L << 0) kWindowHorizontalZoomAttribute = (1L << 1) kWindowVerticalZoomAttribute = (1L << 2) kWindowFullZoomAttribute = (kWindowVerticalZoomAttribute | kWindowHorizontalZoomAttribute) kWindowCollapseBoxAttribute = (1L << 3) kWindowResizableAttribute = (1L << 4) kWindowSideTitlebarAttribute = (1L << 5) kWindowToolbarButtonAttribute = (1L << 6) kWindowNoUpdatesAttribute = (1L << 16) kWindowNoActivatesAttribute = (1L << 17) kWindowOpaqueForEventsAttribute = (1L << 18) kWindowNoShadowAttribute = (1L << 21) kWindowHideOnSuspendAttribute = (1L << 24) kWindowStandardHandlerAttribute = (1L << 25) kWindowHideOnFullScreenAttribute = (1L << 26) kWindowInWindowMenuAttribute = (1L << 27) kWindowLiveResizeAttribute = (1L << 28) # kWindowNoConstrainAttribute = (unsigned long)((1L << 31)) kWindowStandardDocumentAttributes = (kWindowCloseBoxAttribute | kWindowFullZoomAttribute | kWindowCollapseBoxAttribute | kWindowResizableAttribute) kWindowStandardFloatingAttributes = (kWindowCloseBoxAttribute | kWindowCollapseBoxAttribute) kWindowDefProcType = FOUR_CHAR_CODE('WDEF') kStandardWindowDefinition = 0 kRoundWindowDefinition = 1 kFloatingWindowDefinition = 124 kDocumentWindowVariantCode = 0 kModalDialogVariantCode = 1 kPlainDialogVariantCode = 2 kShadowDialogVariantCode = 3 kMovableModalDialogVariantCode = 5 kAlertVariantCode = 7 kMovableAlertVariantCode = 9 kSideFloaterVariantCode = 8 documentProc = 0 dBoxProc = 1 plainDBox = 2 altDBoxProc = 3 noGrowDocProc = 4 movableDBoxProc = 5 zoomDocProc = 8 zoomNoGrow = 12 floatProc = 1985 floatGrowProc = 1987 floatZoomProc = 1989 floatZoomGrowProc = 1991 floatSideProc = 1993 floatSideGrowProc = 1995 floatSideZoomProc = 1997 floatSideZoomGrowProc = 1999 rDocProc = 16 kWindowDocumentDefProcResID = 64 kWindowDialogDefProcResID = 65 kWindowUtilityDefProcResID = 66 kWindowUtilitySideTitleDefProcResID = 67 kWindowSheetDefProcResID = 68 kWindowSimpleDefProcResID = 69 kWindowSheetAlertDefProcResID = 70 kWindowDocumentProc = 1024 kWindowGrowDocumentProc = 1025 kWindowVertZoomDocumentProc = 1026 kWindowVertZoomGrowDocumentProc = 1027 kWindowHorizZoomDocumentProc = 1028 kWindowHorizZoomGrowDocumentProc = 1029 kWindowFullZoomDocumentProc = 1030 kWindowFullZoomGrowDocumentProc = 1031 kWindowPlainDialogProc = 1040 kWindowShadowDialogProc = 1041 kWindowModalDialogProc = 1042 kWindowMovableModalDialogProc = 1043 kWindowAlertProc = 1044 kWindowMovableAlertProc = 1045 kWindowMovableModalGrowProc = 1046 kWindowFloatProc = 1057 kWindowFloatGrowProc = 1059 kWindowFloatVertZoomProc = 1061 kWindowFloatVertZoomGrowProc = 1063 kWindowFloatHorizZoomProc = 1065 kWindowFloatHorizZoomGrowProc = 1067 kWindowFloatFullZoomProc = 1069 kWindowFloatFullZoomGrowProc = 1071 kWindowFloatSideProc = 1073 kWindowFloatSideGrowProc = 1075 kWindowFloatSideVertZoomProc = 1077 kWindowFloatSideVertZoomGrowProc = 1079 kWindowFloatSideHorizZoomProc = 1081 kWindowFloatSideHorizZoomGrowProc = 1083 kWindowFloatSideFullZoomProc = 1085 kWindowFloatSideFullZoomGrowProc = 1087 kWindowSheetProc = 1088 kWindowSheetAlertProc = 1120 kWindowSimpleProc = 1104 kWindowSimpleFrameProc = 1105 kWindowNoPosition = 0x0000 kWindowDefaultPosition = 0x0000 kWindowCenterMainScreen = 0x280A kWindowAlertPositionMainScreen = 0x300A kWindowStaggerMainScreen = 0x380A kWindowCenterParentWindow = 0xA80A kWindowAlertPositionParentWindow = 0xB00A kWindowStaggerParentWindow = 0xB80A kWindowCenterParentWindowScreen = 0x680A kWindowAlertPositionParentWindowScreen = 0x700A kWindowStaggerParentWindowScreen = 0x780A kWindowCenterOnMainScreen = 1 kWindowCenterOnParentWindow = 2 kWindowCenterOnParentWindowScreen = 3 kWindowCascadeOnMainScreen = 4 kWindowCascadeOnParentWindow = 5 kWindowCascadeOnParentWindowScreen = 6 kWindowCascadeStartAtParentWindowScreen = 10 kWindowAlertPositionOnMainScreen = 7 kWindowAlertPositionOnParentWindow = 8 kWindowAlertPositionOnParentWindowScreen = 9 kWindowTitleBarRgn = 0 kWindowTitleTextRgn = 1 kWindowCloseBoxRgn = 2 kWindowZoomBoxRgn = 3 kWindowDragRgn = 5 kWindowGrowRgn = 6 kWindowCollapseBoxRgn = 7 kWindowTitleProxyIconRgn = 8 kWindowStructureRgn = 32 kWindowContentRgn = 33 kWindowUpdateRgn = 34 kWindowOpaqueRgn = 35 kWindowGlobalPortRgn = 40 dialogKind = 2 userKind = 8 kDialogWindowKind = 2 kApplicationWindowKind = 8 inDesk = 0 inNoWindow = 0 inMenuBar = 1 inSysWindow = 2 inContent = 3 inDrag = 4 inGrow = 5 inGoAway = 6 inZoomIn = 7 inZoomOut = 8 inCollapseBox = 11 inProxyIcon = 12 inToolbarButton = 13 inStructure = 15 wNoHit = 0 wInContent = 1 wInDrag = 2 wInGrow = 3 wInGoAway = 4 wInZoomIn = 5 wInZoomOut = 6 wInCollapseBox = 9 wInProxyIcon = 10 wInToolbarButton = 11 wInStructure = 13 kWindowMsgDraw = 0 kWindowMsgHitTest = 1 kWindowMsgCalculateShape = 2 kWindowMsgInitialize = 3 kWindowMsgCleanUp = 4 kWindowMsgDrawGrowOutline = 5 kWindowMsgDrawGrowBox = 6 kWindowMsgGetFeatures = 7 kWindowMsgGetRegion = 8 kWindowMsgDragHilite = 9 kWindowMsgModified = 10 kWindowMsgDrawInCurrentPort = 11 kWindowMsgSetupProxyDragImage = 12 kWindowMsgStateChanged = 13 kWindowMsgMeasureTitle = 14 kWindowMsgGetGrowImageRegion = 19 wDraw = 0 wHit = 1 wCalcRgns = 2 wNew = 3 wDispose = 4 wGrow = 5 wDrawGIcon = 6 kWindowStateTitleChanged = (1 << 0) kWindowCanGrow = (1 << 0) kWindowCanZoom = (1 << 1) kWindowCanCollapse = (1 << 2) kWindowIsModal = (1 << 3) kWindowCanGetWindowRegion = (1 << 4) kWindowIsAlert = (1 << 5) kWindowHasTitleBar = (1 << 6) kWindowSupportsDragHilite = (1 << 7) kWindowSupportsModifiedBit = (1 << 8) kWindowCanDrawInCurrentPort = (1 << 9) kWindowCanSetupProxyDragImage = (1 << 10) kWindowCanMeasureTitle = (1 << 11) kWindowWantsDisposeAtProcessDeath = (1 << 12) kWindowSupportsGetGrowImageRegion = (1 << 13) kWindowDefSupportsColorGrafPort = 0x40000002 kWindowIsOpaque = (1 << 14) kWindowSupportsSetGrowImageRegion = (1 << 13) deskPatID = 16 wContentColor = 0 wFrameColor = 1 wTextColor = 2 wHiliteColor = 3 wTitleBarColor = 4 # kMouseUpOutOfSlop = (long)0x80008000 kWindowDefinitionVersionOne = 1 kWindowDefinitionVersionTwo = 2 kWindowIsCollapsedState = (1 << 0L) kStoredWindowSystemTag = FOUR_CHAR_CODE('appl') kStoredBasicWindowDescriptionID = FOUR_CHAR_CODE('sbas') kStoredWindowPascalTitleID = FOUR_CHAR_CODE('s255') kWindowDefProcPtr = 0 kWindowDefObjectClass = 1 kWindowDefProcID = 2 kWindowModalityNone = 0 kWindowModalitySystemModal = 1 kWindowModalityAppModal = 2 kWindowModalityWindowModal = 3 kWindowGroupAttrSelectAsLayer = 1 << 0 kWindowGroupAttrMoveTogether = 1 << 1 kWindowGroupAttrLayerTogether = 1 << 2 kWindowGroupAttrSharedActivation = 1 << 3 kWindowGroupAttrHideOnCollapse = 1 << 4 kWindowActivationScopeNone = 0 kWindowActivationScopeIndependent = 1 kWindowActivationScopeAll = 2 kNextWindowGroup = true kPreviousWindowGroup = false kWindowGroupContentsReturnWindows = 1 << 0 kWindowGroupContentsRecurse = 1 << 1 kWindowGroupContentsVisible = 1 << 2 kWindowPaintProcOptionsNone = 0 kScrollWindowNoOptions = 0 kScrollWindowInvalidate = (1L << 0) kScrollWindowEraseToPortBackground = (1L << 1) kWindowMenuIncludeRotate = 1 << 0 kWindowZoomTransitionEffect = 1 kWindowSheetTransitionEffect = 2 kWindowSlideTransitionEffect = 3 kWindowShowTransitionAction = 1 kWindowHideTransitionAction = 2 kWindowMoveTransitionAction = 3 kWindowResizeTransitionAction = 4 kWindowConstrainMayResize = (1L << 0) kWindowConstrainMoveRegardlessOfFit = (1L << 1) kWindowConstrainAllowPartial = (1L << 2) kWindowConstrainCalcOnly = (1L << 3) kWindowConstrainUseTransitionWindow = (1L << 4) kWindowConstrainStandardOptions = kWindowConstrainMoveRegardlessOfFit kWindowLatentVisibleFloater = 1 << 0 kWindowLatentVisibleSuspend = 1 << 1 kWindowLatentVisibleFullScreen = 1 << 2 kWindowLatentVisibleAppHidden = 1 << 3 kWindowLatentVisibleCollapsedOwner = 1 << 4 kWindowLatentVisibleCollapsedGroup = 1 << 5 kWindowPropertyPersistent = 0x00000001 kWindowGroupAttrSelectable = kWindowGroupAttrSelectAsLayer kWindowGroupAttrPositionFixed = kWindowGroupAttrMoveTogether kWindowGroupAttrZOrderFixed = kWindowGroupAttrLayerTogether --- NEW FILE: __init__.py --- # Filter out warnings about signed/unsigned constants import warnings warnings.filterwarnings("ignore", "", FutureWarning, ".*Controls") warnings.filterwarnings("ignore", "", FutureWarning, ".*MacTextEditor") _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:28 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:28 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/Dist/resources ReadMe.txt, NONE, 1.1 Welcome.rtf, NONE, 1.1 postflight, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/Dist/resources In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/Dist/resources Added Files: ReadMe.txt Welcome.rtf postflight Log Message: added files --- NEW FILE: ReadMe.txt --- This package will install MacPython 2.3.2 for Mac OS X 10.2. Installation on the Panther preview may work, on 10.1 or earlier will not work. Installation requires approximately 20 MB of disk space, ignore the message that it will take zero bytes. You must install onto your current boot disk, even though the installer does not enforce this, otherwise things will not work. MacPython consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for Mac users (an integrated development environment, a Python extension package manager), plus a set of pre-built extension modules that open up specific Macintosh technologies to Python programs (Carbon, AppleScript, Quicktime, more). The installer puts the applications in MacPython-2.3 in your Applications folder, command-line tools in /usr/local/bin and the underlying machinery in /Library/Frameworks/Python.framework. The PythonIDE application has a Help command that gets you started quickly with MacPython and contains references to other documentation. More information on MacPython can be found at http://www.cwi.nl/~jack/macpython.html, more information on Python in general at http://www.python.org. --- NEW FILE: Welcome.rtf --- {\rtf1\mac\ansicpg10000\cocoartf102 {\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Bold;} {\colortbl;\red255\green255\blue255;} \paperw11900\paperh16840\margl1440\margr1440\vieww9920\viewh10660\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural \f0\fs24 \cf0 This package will install \f1\b MacPython 2.3 \f0\b0 for \f1\b Mac OS X 10.2 \f0\b0 . Installation on the Panther preview may work, on 10.1 or earlier will not work.\ \ MacPython consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for Mac users (an integrated development environment, a Python extension package manager), plus a set of pre-built extension modules that open up specific Macintosh technologies to Python programs (Carbon, AppleScript, Quicktime, more).\ \ See the ReadMe file for more information.} --- NEW FILE: postflight --- #!/bin/sh #---------------------------------------------------------------------- # Create the unix tools and compile the .py files after Python has been # installed. #---------------------------------------------------------------------- PYVER=2.3 PKG=$1 DEST=$2 # Make sure things are group-writeable umask 2 # if destination is / then use usr/local/bin, otherwise just bin if [ "$DEST" = "/" ]; then TOOLDIR=/usr/local/bin DEST= else TOOLDIR=$DEST/bin fi # Make sure the dir exists mkdir -p $TOOLDIR # Make some links to the python executable ln -fsh $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/bin/python $TOOLDIR/python$PYVER ln -fsh python$PYVER $TOOLDIR/python # make the pythonw script rm -f $TOOLDIR/pythonw$PYVER cat > $TOOLDIR/pythonw$PYVER < Update of /home/cvs/slpdev/src/2.2/src/Tools/unicode In directory centera.de:/home/tismer/slpdev/src/2.2/src/Tools/unicode Removed Files: mkstringprep.py Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- mkstringprep.py DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Wed May 12 17:33:58 2004 From: tismer at centera.de (Christian Tismer) Date: Wed, 12 May 2004 17:33:58 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/test taskspeed.py, 1.20, 1.21 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/test In directory centera.de:/tmp/cvs-serv16151/dev/Stackless/test Modified Files: taskspeed.py Log Message: This is a major update. Channels got a complete overhaul. They have garbage collection, they are soft-switched, and they are simplified very much. Exception handling has changed completely and is much simpler now. Instead of taking care of exceptions immediately, they are now tuned into "bomb" objects, which can be passed around. A tasklet that hold as bomb when getting activated will explode the bomb as an exception. This also made send_exception much cleaner. We just send a bomb. Also cured a bug with tasklet destruction and hard-switching. The enable_softswitch() function now controls completely whether attempts for stackless calls are made. This is besides speed comparison a nice way for testing, since you can "switch the cstack on" for debugging. Soon to come: channel transfer (coroutine-like) channel pickling getting rid of the tasklet runner (internal stuff no longer needed) new "caller" property for tasklets which defines where to return to after tasklet.run etc. Exposing new properties for scheduling control on channels and tasklets. Re-introducing stack saving, because stackless behavior can be disabled. Index: taskspeed.py =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/test/taskspeed.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** taskspeed.py 18 Apr 2004 14:07:33 -0000 1.20 --- taskspeed.py 12 May 2004 15:33:56 -0000 1.21 *************** *** 75,78 **** --- 75,95 ---- for i in gf(n):pass + def channel_sender(send): + while 1: + send(42); send(42); send(42); send(42); send(42); + send(42); send(42); send(42); send(42); send(42); + send(42); send(42); send(42); send(42); send(42); + send(42); send(42); send(42); send(42); send(42); + + def chantest(n): + chan = channel() + tasklet(channel_sender)(chan.send) + recv = chan.receive + for i in xrange(0, n, 20): + recv(); recv(); recv(); recv(); recv() + recv(); recv(); recv(); recv(); recv() + recv(); recv(); recv(); recv(); recv() + recv(); recv(); recv(); recv(); recv() + niter = 10000000 *************** *** 90,93 **** --- 107,114 ---- res.append(tester(f, niter, (sys._getframe,), "cfunction calls ")) res.append(tester(test_cframe_nr, niter, (), "cframe softswitches")) + enable_softswitch(0) + res.append(tester(chantest, niter, (), "channel s/r hard ")) + enable_softswitch(1) + res.append(tester(chantest, niter, (), "channel s/r soft ")) res.append(tester(f, niter, (lambda:0,), "function calls ")) res.append(tester(gentest, niter, (), "generator calls ")) *************** *** 119,122 **** --- 140,149 ---- # clear all tasklets run() + # kill uncollectables from hard switching + task = None + for task in stackless.uncollectables: + if task.blocked: + task.kill() + del task results_2002_07_28 = """ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:23 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:23 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Modules/cf pycfbridge.c, NONE, 1.1 pycfbridge.h, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Modules/cf In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Modules/cf Added Files: pycfbridge.c pycfbridge.h Log Message: added files --- NEW FILE: pycfbridge.c --- /* ** Convert objects from Python to CoreFoundation and vice-versa. */ #include #include "Python.h" #include "pymactoolbox.h" #include "pycfbridge.h" /* ---------------------------------------- */ /* CoreFoundation objects to Python objects */ /* ---------------------------------------- */ PyObject * PyCF_CF2Python(CFTypeRef src) { CFTypeID typeid; if( src == NULL ) { Py_INCREF(Py_None); return Py_None; } typeid = CFGetTypeID(src); if (typeid == CFArrayGetTypeID()) return PyCF_CF2Python_sequence((CFArrayRef)src); if (typeid == CFDictionaryGetTypeID()) return PyCF_CF2Python_mapping((CFDictionaryRef)src); return PyCF_CF2Python_simple(src); } PyObject * PyCF_CF2Python_sequence(CFArrayRef src) { int size = CFArrayGetCount(src); PyObject *rv; CFTypeRef item_cf; PyObject *item_py = NULL; int i; if ( (rv=PyList_New(size)) == NULL ) return NULL; for(i=0; iob_type->tp_name); return 0; } size = PySequence_Size(src); rv = CFArrayCreateMutable((CFAllocatorRef)NULL, size, &kCFTypeArrayCallBacks); if (rv == NULL) { PyMac_Error(resNotFound); goto err; } for( i=0; iob_type->tp_name); return 0; } size = PyMapping_Size(src); rv = CFDictionaryCreateMutable((CFAllocatorRef)NULL, size, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); if (rv == NULL) { PyMac_Error(resNotFound); goto err; } if ( (aslist = PyMapping_Items(src)) == NULL ) goto err; for( i=0; iob_type->tp_name); return 0; } int PyCF_Python2CF_string(PyObject *src, CFStringRef *dst) { char *chars; CFIndex size; UniChar *unichars; if (PyString_Check(src)) { if (!PyArg_Parse(src, "es", "ascii", &chars)) return NULL; /* This error is more descriptive than the general one below */ *dst = CFStringCreateWithCString((CFAllocatorRef)NULL, chars, kCFStringEncodingASCII); return 1; } if (PyUnicode_Check(src)) { /* We use the CF types here, if Python was configured differently that will give an error */ size = PyUnicode_GetSize(src); if ((unichars = PyUnicode_AsUnicode(src)) == NULL ) goto err; *dst = CFStringCreateWithCharacters((CFAllocatorRef)NULL, unichars, size); return 1; } err: PyErr_Format(PyExc_TypeError, "Cannot convert %.500s objects to CFString", src->ob_type->tp_name); return 0; } --- NEW FILE: pycfbridge.h --- extern PyObject *PyCF_CF2Python(CFTypeRef src); extern PyObject *PyCF_CF2Python_sequence(CFArrayRef src); extern PyObject *PyCF_CF2Python_mapping(CFTypeRef src); extern PyObject *PyCF_CF2Python_simple(CFTypeRef src); extern PyObject *PyCF_CF2Python_string(CFStringRef src); extern int PyCF_Python2CF(PyObject *src, CFTypeRef *dst); extern int PyCF_Python2CF_sequence(PyObject *src, CFArrayRef *dst); extern int PyCF_Python2CF_mapping(PyObject *src, CFDictionaryRef *dst); extern int PyCF_Python2CF_simple(PyObject *src, CFTypeRef *dst); extern int PyCF_Python2CF_string(PyObject *src, CFStringRef *dst); _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:38 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:38 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Demo/embed embeddemo.prj, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Demo/embed In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/Demo/embed Modified Files: embeddemo.prj Log Message: hopefully this is now a base version Index: embeddemo.prj =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/Demo/embed/embeddemo.prj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsgO70Ca and /tmp/cvsOmNngb differ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:05 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:05 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Include boolobject.h, NONE, 1.1 datetime.h, NONE, 1.1 enumobject.h, NONE, 1.1 pgen.h, NONE, 1.1 setobject.h, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Include In directory centera.de:/home/tismer/slpdev/src/2.2/src/Include Added Files: boolobject.h datetime.h enumobject.h pgen.h setobject.h Log Message: added files --- NEW FILE: boolobject.h --- /* Boolean object interface */ #ifndef Py_BOOLOBJECT_H #define Py_BOOLOBJECT_H #ifdef __cplusplus extern "C" { #endif typedef PyIntObject PyBoolObject; PyAPI_DATA(PyTypeObject) PyBool_Type; #define PyBool_Check(x) ((x)->ob_type == &PyBool_Type) /* Py_False and Py_True are the only two bools in existence. Don't forget to apply Py_INCREF() when returning either!!! */ /* Don't use these directly */ PyAPI_DATA(PyIntObject) _Py_ZeroStruct, _Py_TrueStruct; /* Use these macros */ #define Py_False ((PyObject *) &_Py_ZeroStruct) #define Py_True ((PyObject *) &_Py_TrueStruct) /* Macros for returning Py_True or Py_False, respectively */ #define Py_RETURN_TRUE do {Py_INCREF(Py_True); return Py_True;} while (0) #define Py_RETURN_FALSE do {Py_INCREF(Py_False); return Py_False;} while (0) /* Function to return a bool from a C long */ PyAPI_FUNC(PyObject *) PyBool_FromLong(long); #ifdef __cplusplus } #endif #endif /* !Py_BOOLOBJECT_H */ --- NEW FILE: datetime.h --- /* datetime.h */ #ifndef DATETIME_H #define DATETIME_H /* Fields are packed into successive bytes, each viewed as unsigned and * big-endian, unless otherwise noted: * * byte offset * 0 year 2 bytes, 1-9999 * 2 month 1 byte, 1-12 * 3 day 1 byte, 1-31 * 4 hour 1 byte, 0-23 * 5 minute 1 byte, 0-59 * 6 second 1 byte, 0-59 * 7 usecond 3 bytes, 0-999999 * 10 */ /* # of bytes for year, month, and day. */ #define _PyDateTime_DATE_DATASIZE 4 /* # of bytes for hour, minute, second, and usecond. */ #define _PyDateTime_TIME_DATASIZE 6 /* # of bytes for year, month, day, hour, minute, second, and usecond. */ #define _PyDateTime_DATETIME_DATASIZE 10 typedef struct { PyObject_HEAD long hashcode; /* -1 when unknown */ int days; /* -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS */ int seconds; /* 0 <= seconds < 24*3600 is invariant */ int microseconds; /* 0 <= microseconds < 1000000 is invariant */ } PyDateTime_Delta; typedef struct { PyObject_HEAD /* a pure abstract base clase */ } PyDateTime_TZInfo; /* The datetime and time types have hashcodes, and an optional tzinfo member, * present if and only if hastzinfo is true. */ #define _PyTZINFO_HEAD \ PyObject_HEAD \ long hashcode; \ char hastzinfo; /* boolean flag */ /* No _PyDateTime_BaseTZInfo is allocated; it's just to have something * convenient to cast to, when getting at the hastzinfo member of objects * starting with _PyTZINFO_HEAD. */ typedef struct { _PyTZINFO_HEAD } _PyDateTime_BaseTZInfo; /* All time objects are of PyDateTime_TimeType, but that can be allocated * in two ways, with or without a tzinfo member. Without is the same as * tzinfo == None, but consumes less memory. _PyDateTime_BaseTime is an * internal struct used to allocate the right amount of space for the * "without" case. */ #define _PyDateTime_TIMEHEAD \ _PyTZINFO_HEAD \ unsigned char data[_PyDateTime_TIME_DATASIZE]; typedef struct { _PyDateTime_TIMEHEAD } _PyDateTime_BaseTime; /* hastzinfo false */ typedef struct { _PyDateTime_TIMEHEAD PyObject *tzinfo; } PyDateTime_Time; /* hastzinfo true */ /* All datetime objects are of PyDateTime_DateTimeType, but that can be * allocated in two ways too, just like for time objects above. In addition, * the plain date type is a base class for datetime, so it must also have * a hastzinfo member (although it's unused there). */ typedef struct { _PyTZINFO_HEAD unsigned char data[_PyDateTime_DATE_DATASIZE]; } PyDateTime_Date; #define _PyDateTime_DATETIMEHEAD \ _PyTZINFO_HEAD \ unsigned char data[_PyDateTime_DATETIME_DATASIZE]; typedef struct { _PyDateTime_DATETIMEHEAD } _PyDateTime_BaseDateTime; /* hastzinfo false */ typedef struct { _PyDateTime_DATETIMEHEAD PyObject *tzinfo; } PyDateTime_DateTime; /* hastzinfo true */ /* Apply for date and datetime instances. */ #define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)o)->data[0] << 8) | \ ((PyDateTime_Date*)o)->data[1]) #define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)o)->data[2]) #define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)o)->data[3]) #define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)o)->data[4]) #define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)o)->data[5]) #define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)o)->data[6]) #define PyDateTime_DATE_GET_MICROSECOND(o) \ ((((PyDateTime_DateTime*)o)->data[7] << 16) | \ (((PyDateTime_DateTime*)o)->data[8] << 8) | \ ((PyDateTime_DateTime*)o)->data[9]) /* Apply for time instances. */ #define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)o)->data[0]) #define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)o)->data[1]) #define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)o)->data[2]) #define PyDateTime_TIME_GET_MICROSECOND(o) \ ((((PyDateTime_Time*)o)->data[3] << 16) | \ (((PyDateTime_Time*)o)->data[4] << 8) | \ ((PyDateTime_Time*)o)->data[5]) #define PyDate_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateType) #define PyDate_CheckExact(op) ((op)->ob_type == &PyDateTime_DateType) #define PyDateTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateTimeType) #define PyDateTime_CheckExact(op) ((op)->ob_type == &PyDateTime_DateTimeType) #define PyTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeType) #define PyTime_CheckExact(op) ((op)->ob_type == &PyDateTime_TimeType) #define PyDelta_Check(op) PyObject_TypeCheck(op, &PyDateTime_DeltaType) #define PyDelta_CheckExact(op) ((op)->ob_type == &PyDateTime_DeltaType) #define PyTZInfo_Check(op) PyObject_TypeCheck(op, &PyDateTime_TZInfoType) #define PyTZInfo_CheckExact(op) ((op)->ob_type == &PyDateTime_TZInfoType) #endif --- NEW FILE: enumobject.h --- #ifndef Py_ENUMOBJECT_H #define Py_ENUMOBJECT_H /* Enumerate Object */ #ifdef __cplusplus extern "C" { #endif PyAPI_DATA(PyTypeObject) PyEnum_Type; PyAPI_DATA(PyTypeObject) PyReversed_Type; #ifdef __cplusplus } #endif #endif /* !Py_ENUMOBJECT_H */ --- NEW FILE: pgen.h --- #ifndef Py_PGEN_H #define Py_PGEN_H #ifdef __cplusplus extern "C" { #endif /* Parser generator interface */ extern grammar *meta_grammar(void); struct _node; extern grammar *pgen(struct _node *); #ifdef __cplusplus } #endif #endif /* !Py_PGEN_H */ --- NEW FILE: setobject.h --- /* Set object interface */ #ifndef Py_SETOBJECT_H #define Py_SETOBJECT_H #ifdef __cplusplus extern "C" { #endif /* This data structure is shared by set and frozenset objects. */ typedef struct { PyObject_HEAD PyObject *data; long hash; /* only used by frozenset objects */ } PySetObject; PyAPI_DATA(PyTypeObject) PySet_Type; PyAPI_DATA(PyTypeObject) PyFrozenSet_Type; #define PyFrozenSet_CheckExact(ob) ((ob)->ob_type == &PyFrozenSet_Type) #define PyAnySet_Check(ob) \ ((ob)->ob_type == &PySet_Type || (ob)->ob_type == &PyFrozenSet_Type || \ PyType_IsSubtype((ob)->ob_type, &PySet_Type) || \ PyType_IsSubtype((ob)->ob_type, &PyFrozenSet_Type)) #ifdef __cplusplus } #endif #endif /* !Py_SETOBJECT_H */ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 00:11:29 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 00:11:29 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src .cvsignore, 1.5, 1.6 configure, 1.10, 1.11 configure.in, 1.3, 1.4 Message-ID: Update of /home/cvs/slpdev/src/2.2/src In directory centera.de:/tmp/cvs-serv13270/src Modified Files: .cvsignore configure configure.in Log Message: checking Python 2.2.3 back in, almost unmodified. The only modifications are in PCbuild, and the additon of the new Stackless for 2.3.3 trunk. Purpose: I will apply all current changes to 2.3.3 back to 2.2.3. Since I'm unsure how to do this on the current dev trunk by CVS, and since I never imported 2.2.3 before, I prefer to do it this way, using the merge program explicitly. Index: .cvsignore =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/.cvsignore,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** .cvsignore 25 Aug 2002 16:36:49 -0000 1.5 --- .cvsignore 30 Apr 2004 22:11:26 -0000 1.6 *************** *** 5,12 **** Makefile buildno build Makefile.pre platform pyconfig.h - *.pyo - *.pyc --- 5,11 ---- Makefile buildno + python build Makefile.pre platform pyconfig.h Index: configure =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/configure,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** configure 25 Jan 2004 18:50:25 -0000 1.10 --- configure 30 Apr 2004 22:11:26 -0000 1.11 *************** *** 648,655 **** fi - # Execute stackless script - - . $srcdir/Stackless/slpconf.sh - # # SGI compilers allow the specification of the both the ABI and the --- 648,651 ---- *************** *** 3027,3031 **** #include "confdefs.h" #include ! #include main() { --- 3023,3027 ---- #include "confdefs.h" #include ! #include main() { *************** *** 3719,3725 **** #include "confdefs.h" #include ! #ifdef _POSIX_THREADS ! yes ! #endif EOF --- 3715,3721 ---- #include "confdefs.h" #include ! #ifdef _POSIX_THREADS ! yes ! #endif EOF *************** *** 7631,7635 **** ! SRCDIRS="Parser Grammar Objects Python Modules Stackless" echo $ac_n "checking for build directories""... $ac_c" 1>&6 echo "configure:7632: checking for build directories" >&5 --- 7627,7631 ---- ! SRCDIRS="Parser Grammar Objects Python Modules" echo $ac_n "checking for build directories""... $ac_c" 1>&6 echo "configure:7632: checking for build directories" >&5 *************** *** 7827,7831 **** s%@THREADHEADERS@%$THREADHEADERS%g s%@SRCDIRS@%$SRCDIRS%g - s%@SLPFLAGS@%$SLPFLAGS%g CEOF --- 7823,7826 ---- Index: configure.in =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/configure.in,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configure.in 27 Sep 2003 16:52:07 -0000 1.3 --- configure.in 30 Apr 2004 22:11:26 -0000 1.4 *************** *** 670,674 **** AC_CACHE_VAL(ac_cv_sizeof_pthread_t, [AC_TRY_RUN([#include ! #include main() { --- 670,674 ---- AC_CACHE_VAL(ac_cv_sizeof_pthread_t, [AC_TRY_RUN([#include ! #include main() { *************** *** 1060,1066 **** AC_EGREP_CPP(yes, [#include ! #ifdef _POSIX_THREADS ! yes ! #endif ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no) AC_MSG_RESULT($unistd_defines_pthreads) --- 1060,1066 ---- AC_EGREP_CPP(yes, [#include ! #ifdef _POSIX_THREADS ! yes ! #endif ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no) AC_MSG_RESULT($unistd_defines_pthreads) *************** *** 2119,2123 **** AC_SUBST(SRCDIRS) ! SRCDIRS="Parser Grammar Objects Python Modules Stackless" AC_MSG_CHECKING(for build directories) for dir in $SRCDIRS; do --- 2119,2123 ---- AC_SUBST(SRCDIRS) ! SRCDIRS="Parser Grammar Objects Python Modules" AC_MSG_CHECKING(for build directories) for dir in $SRCDIRS; do _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:44:41 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:44:41 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/PC/example_nt example.dsp, 1.2, 1.3 example.dsw, 1.2, 1.3 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/PC/example_nt In directory centera.de:/home/tismer/slpdev/src/2.2/src/PC/example_nt Modified Files: example.dsp example.dsw Log Message: hopefully this is now a base version Index: example.dsp =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/PC/example_nt/example.dsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** example.dsp 30 Apr 2004 22:11:26 -0000 1.2 --- example.dsp 1 May 2004 00:44:37 -0000 1.3 *************** *** 1,117 **** ! # Microsoft Developer Studio Project File - Name="example" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=example - Win32 Release ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "example.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "example.mak" CFG="example - Win32 Release" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "example - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "example - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "" ! # PROP Scc_LocalPath "" ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "example - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir ".\Release" ! # PROP BASE Intermediate_Dir ".\Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir ".\Release" ! # PROP Intermediate_Dir ".\Release" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c ! # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\Include" /I "..\PC" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib python22.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"..\PCbuild" /export:initexample ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "example - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir ".\Debug" ! # PROP BASE Intermediate_Dir ".\Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir ".\Debug" ! # PROP Intermediate_Dir ".\Debug" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\Include" /I "..\PC" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib python22_d.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:".\Debug/example_d.dll" /libpath:"..\PCbuild" /export:initexample ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "example - Win32 Release" ! # Name "example - Win32 Debug" ! # Begin Group "Source Files" ! ! # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" ! # Begin Source File ! ! SOURCE=.\example.c ! # End Source File ! # Begin Source File ! ! SOURCE=.\example.def ! # End Source File ! # Begin Source File ! ! SOURCE=.\readme.txt ! # End Source File ! # End Group ! # Begin Group "Header Files" ! ! # PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" ! # End Group ! # Begin Group "Resource Files" ! ! # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" ! # End Group ! # End Target ! # End Project --- 1,117 ---- ! # Microsoft Developer Studio Project File - Name="example" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=example - Win32 Release ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "example.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "example.mak" CFG="example - Win32 Release" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "example - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "example - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "" ! # PROP Scc_LocalPath "" ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "example - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir ".\Release" ! # PROP BASE Intermediate_Dir ".\Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir ".\Release" ! # PROP Intermediate_Dir ".\Release" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c ! # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\Include" /I "..\PC" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib python22.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"..\PCbuild" /export:initexample ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "example - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir ".\Debug" ! # PROP BASE Intermediate_Dir ".\Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir ".\Debug" ! # PROP Intermediate_Dir ".\Debug" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\Include" /I "..\PC" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib python22_d.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:".\Debug/example_d.dll" /libpath:"..\PCbuild" /export:initexample ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "example - Win32 Release" ! # Name "example - Win32 Debug" ! # Begin Group "Source Files" ! ! # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" ! # Begin Source File ! ! SOURCE=.\example.c ! # End Source File ! # Begin Source File ! ! SOURCE=.\example.def ! # End Source File ! # Begin Source File ! ! SOURCE=.\readme.txt ! # End Source File ! # End Group ! # Begin Group "Header Files" ! ! # PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" ! # End Group ! # Begin Group "Resource Files" ! ! # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" ! # End Group ! # End Target ! # End Project Index: example.dsw =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/PC/example_nt/example.dsw,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** example.dsw 30 Apr 2004 22:11:26 -0000 1.2 --- example.dsw 1 May 2004 00:44:37 -0000 1.3 *************** *** 1,29 **** ! Microsoft Developer Studio Workspace File, Format Version 6.00 ! # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! ! ! ############################################################################### ! ! Project: "example"=.\example.dsp - Package Owner=<4> ! ! Package=<5> ! {{{ ! }}} ! ! Package=<4> ! {{{ ! }}} ! ! ############################################################################### ! ! Global: ! ! Package=<5> ! {{{ ! }}} ! ! Package=<3> ! {{{ ! }}} ! ! ############################################################################### ! --- 1,29 ---- ! Microsoft Developer Studio Workspace File, Format Version 6.00 ! # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! ! ! ############################################################################### ! ! Project: "example"=.\example.dsp - Package Owner=<4> ! ! Package=<5> ! {{{ ! }}} ! ! Package=<4> ! {{{ ! }}} ! ! ############################################################################### ! ! Global: ! ! Package=<5> ! {{{ ! }}} ! ! Package=<3> ! {{{ ! }}} ! ! ############################################################################### ! _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:13 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:13 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/xml/dom NodeFilter.py, 1.1, NONE expatbuilder.py, 1.1, NONE minicompat.py, 1.1, NONE xmlbuilder.py, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/xml/dom In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/xml/dom Removed Files: NodeFilter.py expatbuilder.py minicompat.py xmlbuilder.py Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- NodeFilter.py DELETED --- --- expatbuilder.py DELETED --- --- minicompat.py DELETED --- --- xmlbuilder.py DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:12 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:12 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj InfoPlist.strings, 1.1.1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj In directory centera.de:/tmp/cvs-serv18709/src/Mac/OSXResources/app/Resources/English.lproj Modified Files: InfoPlist.strings Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: InfoPlist.strings =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/OSXResources/app/Resources/English.lproj/InfoPlist.strings,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsJf4i57 and /tmp/cvsypWZ15 differ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 3 18:54:32 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 03 May 2004 18:54:32 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib copy.py, 1.5, 1.6 pickle.py, 1.5, 1.6 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib In directory centera.de:/tmp/cvs-serv20604/src/2.2/src/Lib Modified Files: copy.py pickle.py Log Message: completely back-ported Stackless to Python 2.2.3. It passes all relevant tests, supports pickling etc. The gola is to keep the core files identical as long as possible. This caused a few changes to the test files, which need to figure out which tests to omit, for instance. This 2.2.3 versiion is almost identical to the original, but a few changes: - Pickling does not check for __safe_for_unpickling__ - Generators don't need from __future__ import generators - code objects have a builtin tp_new method. These changes *all* vanish if STACKLESS_OFF is defined. Index: copy.py =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Lib/copy.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** copy.py 1 May 2004 01:21:08 -0000 1.5 --- copy.py 3 May 2004 16:54:28 -0000 1.6 *************** *** 91,97 **** _copy_dispatch = d = {} ! def _copy_immutable(x): return x - <<<<<<< ../../2.2/src/./Lib/copy.py d[types.NoneType] = _copy_atomic d[types.IntType] = _copy_atomic --- 91,96 ---- _copy_dispatch = d = {} ! def _copy_atomic(x): return x d[types.NoneType] = _copy_atomic d[types.IntType] = _copy_atomic *************** *** 122,145 **** return x[:] d[types.TupleType] = _copy_tuple - ======= - for t in (types.NoneType, int, long, float, bool, str, tuple, - type, xrange, types.ClassType, - types.BuiltinFunctionType): - d[t] = _copy_immutable - for name in ("ComplexType", "UnicodeType", "CodeType"): - t = getattr(types, name, None) - if t is not None: - d[t] = _copy_immutable ! def _copy_with_constructor(x): ! return type(x)(x) ! for t in (list, dict): ! d[t] = _copy_with_constructor ! >>>>>>> ././Lib/copy.py ! ! def _copy_with_copy_method(x): return x.copy() if PyStringMap is not None: ! d[PyStringMap] = _copy_with_copy_method def _copy_inst(x): --- 121,130 ---- return x[:] d[types.TupleType] = _copy_tuple ! def _copy_dict(x): return x.copy() + d[types.DictionaryType] = _copy_dict if PyStringMap is not None: ! d[PyStringMap] = _copy_dict def _copy_inst(x): Index: pickle.py =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Lib/pickle.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pickle.py 1 May 2004 01:21:08 -0000 1.5 --- pickle.py 3 May 2004 16:54:28 -0000 1.6 *************** *** 110,139 **** self.write = file.write self.memo = {} - <<<<<<< ../../2.2/src/./Lib/pickle.py self.bin = bin - ======= - self.proto = int(protocol) - self.bin = protocol >= 1 - self.fast = 0 ## Stackless addition BEGIN try: from stackless import _pickle_moduledict except ImportError: _pickle_moduledict = lambda self, obj:None self._pickle_moduledict = _pickle_moduledict ## Stackless addition END - def clear_memo(self): - """Clears the pickler's "memo". - - The memo is the data structure that remembers which objects the - pickler has already seen, so that shared or recursive objects are - pickled by reference and not by value. This method is useful when - re-using picklers. - - """ - self.memo.clear() - >>>>>>> ././Lib/pickle.py - def dump(self, object): self.save(object) --- 110,124 ---- self.write = file.write self.memo = {} self.bin = bin ## Stackless addition BEGIN try: from stackless import _pickle_moduledict + self.stackless = True except ImportError: _pickle_moduledict = lambda self, obj:None + self.stackless = False self._pickle_moduledict = _pickle_moduledict ## Stackless addition END def dump(self, object): self.save(object) *************** *** 447,460 **** def save_dict(self, object): d = id(object) - - <<<<<<< ../../2.2/src/./Lib/pickle.py - ======= - def save_dict(self, obj): ## Stackless addition BEGIN ! modict_saver = self._pickle_moduledict(self, obj) if modict_saver is not None: return self.save_reduce(*modict_saver) ## Stackless addition END - >>>>>>> ././Lib/pickle.py write = self.write save = self.save --- 432,440 ---- def save_dict(self, object): d = id(object) ## Stackless addition BEGIN ! modict_saver = self._pickle_moduledict(self, object) if modict_saver is not None: return self.save_reduce(*modict_saver) ## Stackless addition END write = self.write save = self.save *************** *** 559,568 **** (object, module, name)) - <<<<<<< ../../2.2/src/./Lib/pickle.py memo_len = len(memo) write(GLOBAL + module + '\n' + name + '\n' + self.put(memo_len)) memo[id(object)] = (memo_len, object) ! ======= def save_function(self, obj): try: --- 539,547 ---- (object, module, name)) memo_len = len(memo) write(GLOBAL + module + '\n' + name + '\n' + self.put(memo_len)) memo[id(object)] = (memo_len, object) ! def save_function(self, obj): try: *************** *** 587,591 **** return self.save_reduce(obj=obj, *rv) - >>>>>>> ././Lib/pickle.py dispatch[ClassType] = save_global dispatch[FunctionType] = save_function --- 566,569 ---- *************** *** 644,647 **** --- 622,632 ---- self.read = file.read self.memo = {} + ## Stackless addition BEGIN + try: + import stackless + self.stackless = True + except ImportError: + self.stackless = False + ## Stackless addition END def load(self): *************** *** 839,842 **** --- 824,830 ---- try: if not hasattr(klass, '__safe_for_unpickling__'): + ## Stackless addition BEGIN + if not self.stackless: + ## Stackless addiion END raise UnpicklingError('%s is not safe for unpickling' % klass) *************** *** 893,896 **** --- 881,887 ---- if type(callable) is not ClassType: if not safe_constructors.has_key(callable): + ## Stackless addition BEGIN + if not self.stackless: + ## Stackless addiion END try: safe = callable.__safe_for_unpickling__ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 24 03:01:23 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 24 May 2004 03:01:23 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/test taskspeed.py, 1.21, 1.22 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/test In directory centera.de:/tmp/cvs-serv31331/test Modified Files: taskspeed.py Log Message: This is Stackless 3.1 alpha. Stackless is supporting Real Threads! There are a few glitches: The unit tests don't pass all, yet. Revive_main has been dropped in favor of a global dead-lock check. Maybe this needs a bit more work. There is a global interthread lock. I'm not sure whether it is really needed. Anyway, this thing works nicely with threads. I'm very happy to release this new version, after a full week of day and night hacking. Btw.: channels are not working compatibly, right now. Their policy to prefer receivers to be unlocked is not set at the moment. I will set the default back, ASAP and provide a computed attribute to control this with the next check-in. Index: taskspeed.py =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/test/taskspeed.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** taskspeed.py 12 May 2004 15:33:56 -0000 1.21 --- taskspeed.py 24 May 2004 01:01:21 -0000 1.22 *************** *** 1,5 **** # speed test ! from __future__ import generators ! import time, sys class StacklessError(Exception): pass --- 1,4 ---- # speed test ! import time, sys, thread class StacklessError(Exception): pass *************** *** 48,51 **** --- 47,56 ---- sched(); sched(); sched(); sched(); sched() + def cleanup(): + # kill uncollectables from hard switching and threads + for task in stackless.uncollectables: + if task.blocked: + task.kill() + def tester(func, niter, args, msg, ntasks=10, run=run): print "%8d %s" % (niter, msg, ), *************** *** 59,63 **** run() diff = clock() - start ! print "took %9.5f seconds, rate = %10d/s" % (diff, niter/diff) except StacklessError: print "could not run, this is not Stackless" --- 64,69 ---- run() diff = clock() - start ! print "took %9.5f seconds, rate = %10d/s" % (diff, long(niter/diff)) ! cleanup() except StacklessError: print "could not run, this is not Stackless" *************** *** 75,79 **** for i in gf(n):pass ! def channel_sender(send): while 1: send(42); send(42); send(42); send(42); send(42); --- 81,87 ---- for i in gf(n):pass ! def channel_sender(send, nest=0): ! if nest: ! return channel_sender(send, nest-1) while 1: send(42); send(42); send(42); send(42); send(42); *************** *** 82,89 **** send(42); send(42); send(42); send(42); send(42); ! def chantest(n): chan = channel() ! tasklet(channel_sender)(chan.send) recv = chan.receive for i in xrange(0, n, 20): recv(); recv(); recv(); recv(); recv() --- 90,113 ---- send(42); send(42); send(42); send(42); send(42); ! def chantest(n, nest=0, use_thread=False): ! if nest: ! return chantest(n, nest-1, use_thread) chan = channel() ! if use_thread: ! thread.start_new_thread(channel_sender, (chan.send,)) ! # wait for thread ! while not chan.balance: ! schedule() ! else: ! tasklet(channel_sender)(chan.send) recv = chan.receive + def xrecv(): + if chan.balance: + print "receiving from", id(chan.queue), "siblings=", getruncount() + else: + print "blocking" + chan.receive() + getcurrent().next.run() + schedule() for i in xrange(0, n, 20): recv(); recv(); recv(); recv(); recv() *************** *** 92,99 **** recv(); recv(); recv(); recv(); recv() niter = 10000000 if stackless.debug: ! niter = 20 if args_given: --- 116,128 ---- recv(); recv(); recv(); recv(); recv() + if 0: + def cb(*args): + print args + set_channel_callback(cb) + niter = 10000000 if stackless.debug: ! niter = 20000 if args_given: *************** *** 108,114 **** res.append(tester(test_cframe_nr, niter, (), "cframe softswitches")) enable_softswitch(0) ! res.append(tester(chantest, niter, (), "channel s/r hard ")) enable_softswitch(1) ! res.append(tester(chantest, niter, (), "channel s/r soft ")) res.append(tester(f, niter, (lambda:0,), "function calls ")) res.append(tester(gentest, niter, (), "generator calls ")) --- 137,145 ---- res.append(tester(test_cframe_nr, niter, (), "cframe softswitches")) enable_softswitch(0) ! res.append(tester(chantest, niter, (), "channel hard top ")) ! res.append(tester(chantest, niter, (3,), "channel hard nest 3")) enable_softswitch(1) ! res.append(tester(chantest, niter, (), "channel soft ")) ! res.append(tester(chantest, niter//10, (0, 1), "channel real thread")) res.append(tester(f, niter, (lambda:0,), "function calls ")) res.append(tester(gentest, niter, (), "generator calls ")) *************** *** 140,149 **** # clear all tasklets run() ! # kill uncollectables from hard switching ! task = None ! for task in stackless.uncollectables: ! if task.blocked: ! task.kill() ! del task results_2002_07_28 = """ --- 171,175 ---- # clear all tasklets run() ! cleanup() results_2002_07_28 = """ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 03:53:06 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 03:53:06 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Stackless/core stacklesseval.c, 1.145, 1.146 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Stackless/core In directory centera.de:/tmp/cvs-serv2531/src/Stackless/core Modified Files: stacklesseval.c Log Message: simplified generator initialization Index: stacklesseval.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Stackless/core/stacklesseval.c,v retrieving revision 1.145 retrieving revision 1.146 diff -C2 -d -r1.145 -r1.146 *** stacklesseval.c 1 May 2004 19:01:49 -0000 1.145 --- stacklesseval.c 2 May 2004 01:53:04 -0000 1.146 *************** *** 395,426 **** static PyObject* gen_iternext_callback(PyFrameObject *f, PyObject *retval); - DEF_INVALID_EXEC(gen_iternext_callback) - - static int - setup_iternext(PyFrameObject *f) - { - static int initialized = 0; - - f->f_back = (PyFrameObject *) - slp_baseframe_new(gen_iternext_callback, 0, - GEN_CALLBACK_FRAME_SIZE); - if (f->f_back == NULL) { - return -1; - } - /* initialize pickling of running generators */ - if (!initialized) { - if (slp_register_execute( - &PyBaseFrame_Type, "gen_iternext_callback", - gen_iternext_callback, - REF_INVALID_EXEC(gen_iternext_callback)) ) { - /* ignore reference, this is a very bad error */ - return -1; - } - initialized = 1; - } - - return 0; - } - PyObject * slp_gen_iternext(PyObject *ob) --- 395,398 ---- *************** *** 441,445 **** return NULL; ! if (f->f_back == NULL && setup_iternext(f)) return NULL; /* Generators always return to their most recent caller, not --- 413,420 ---- return NULL; ! if (f->f_back == NULL && ! (f->f_back = (PyFrameObject *) ! slp_baseframe_new(gen_iternext_callback, 0, ! GEN_CALLBACK_FRAME_SIZE)) == NULL) return NULL; /* Generators always return to their most recent caller, not _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Mon May 3 18:54:33 2004 From: tismer at centera.de (Christian Tismer) Date: Mon, 03 May 2004 18:54:33 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Include methodobject.h, 1.7, 1.8 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Include In directory centera.de:/tmp/cvs-serv20604/src/2.3/dev/Include Modified Files: methodobject.h Log Message: completely back-ported Stackless to Python 2.2.3. It passes all relevant tests, supports pickling etc. The gola is to keep the core files identical as long as possible. This caused a few changes to the test files, which need to figure out which tests to omit, for instance. This 2.2.3 versiion is almost identical to the original, but a few changes: - Pickling does not check for __safe_for_unpickling__ - Generators don't need from __future__ import generators - code objects have a builtin tp_new method. These changes *all* vanish if STACKLESS_OFF is defined. Index: methodobject.h =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Include/methodobject.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** methodobject.h 24 Apr 2004 23:29:39 -0000 1.7 --- methodobject.h 3 May 2004 16:54:29 -0000 1.8 *************** *** 60,63 **** --- 60,65 ---- #ifdef STACKLESS #define METH_STACKLESS 0x0040 + #else + #define METH_STACKLESS 0x0000 #endif _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:12 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:12 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/Modules/cg CGStubLib, 1.1.1.2, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/Modules/cg In directory centera.de:/tmp/cvs-serv18709/src/Mac/Modules/cg Modified Files: CGStubLib Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: CGStubLib =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/Modules/cg/CGStubLib,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -C2 -d -r1.1.1.2 -r1.2 Binary files /tmp/cvsJbSmNP and /tmp/cvsU60Duv differ _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 03:51:43 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 03:51:43 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/pickling prickelpit.c, 1.74, 1.75 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Stackless/pickling In directory centera.de:/tmp/cvs-serv2327/dev/Stackless/pickling Modified Files: prickelpit.c Log Message: initialized gen_iternext_callback by a script! Index: prickelpit.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/pickling/prickelpit.c,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** prickelpit.c 1 May 2004 20:24:10 -0000 1.74 --- prickelpit.c 2 May 2004 01:51:41 -0000 1.75 *************** *** 1028,1038 **** { return slp_register_execute(&PyFrame_Type, "eval_frame", ! PyEval_EvalFrame, REF_INVALID_EXEC(eval_frame)) || slp_register_execute(&PyFrame_Type, "eval_frame_value", ! PyEval_EvalFrame_value, REF_INVALID_EXEC(eval_frame_value)) || slp_register_execute(&PyFrame_Type, "eval_frame_noval", ! PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval)) || slp_register_execute(&PyFrame_Type, "eval_frame_iter", ! PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter)) || init_type(&wrap_PyFrame_Type, initchain); } --- 1028,1038 ---- { return slp_register_execute(&PyFrame_Type, "eval_frame", ! PyEval_EvalFrame, REF_INVALID_EXEC(eval_frame)) || slp_register_execute(&PyFrame_Type, "eval_frame_value", ! PyEval_EvalFrame_value, REF_INVALID_EXEC(eval_frame_value)) || slp_register_execute(&PyFrame_Type, "eval_frame_noval", ! PyEval_EvalFrame_noval, REF_INVALID_EXEC(eval_frame_noval)) || slp_register_execute(&PyFrame_Type, "eval_frame_iter", ! PyEval_EvalFrame_iter, REF_INVALID_EXEC(eval_frame_iter)) || init_type(&wrap_PyFrame_Type, initchain); } *************** *** 1438,1442 **** ******************************************************/ ! #ifdef PyAPI_23 /* --- 1438,1442 ---- ******************************************************/ ! #if PY_VERSION_HEX >= 0x02030000 /* *************** *** 1489,1493 **** #define initchain init_enumtype ! #endif */ PyAPI_23 */ /****************************************************** --- 1489,1493 ---- #define initchain init_enumtype ! #endif */ PY_VERSION_HEX >= 0x02030000 */ /****************************************************** *************** *** 1497,1501 **** ******************************************************/ ! #ifdef PyAPI_23 /* --- 1497,1501 ---- ******************************************************/ ! #if PY_VERSION_HEX >= 0x02030000 /* *************** *** 1547,1551 **** #define initchain init_listitertype ! #endif /* PyAPI_23 */ --- 1547,1551 ---- #define initchain init_listitertype ! #endif /* PY_VERSION_HEX >= 0x02030000 */ *************** *** 1556,1560 **** ******************************************************/ ! #ifdef PyAPI_23 /* --- 1556,1560 ---- ******************************************************/ ! #if PY_VERSION_HEX >= 0x02030000 /* *************** *** 1617,1621 **** #define initchain init_rangeitertype ! #endif */ PyAPI_23 */ --- 1617,1621 ---- #define initchain init_rangeitertype ! #endif */ PY_VERSION_HEX >= 0x02030000 */ *************** *** 1626,1630 **** ******************************************************/ ! #ifdef PyAPI_23 /* --- 1626,1630 ---- ******************************************************/ ! #if PY_VERSION_HEX >= 0x02030000 /* *************** *** 1677,1681 **** #define initchain init_tupleitertype ! #endif /* PyAPI_23 */ --- 1677,1681 ---- #define initchain init_tupleitertype ! #endif /* PY_VERSION_HEX >= 0x02030000 */ *************** *** 1686,1690 **** ******************************************************/ ! #ifdef pyAPI_23 /* --- 1686,1690 ---- ******************************************************/ ! #if PY_VERSION_HEX >= 0x02030000 /* *************** *** 1727,1731 **** #define initchain init_rangetype ! #endif /* PyAPI_23 */ --- 1727,1731 ---- #define initchain init_rangetype ! #endif /* PY_VERSION_HEX < 0x02030000 */ *************** *** 1945,1951 **** gen_new, gen_setstate) static int init_generatortype(void) { ! return init_type(&wrap_PyGenerator_Type, initchain); } #undef initchain --- 1945,1968 ---- gen_new, gen_setstate) + DEF_INVALID_EXEC(gen_iternext_callback) + static int init_generatortype(void) { ! int res; ! genobject *gen = (genobject *) run_script( ! "def f(): yield 42\n" /* define a generator */ ! "g = f()\n" /* instanciate it */ ! "g.next()\n", "g"); /* force callback frame creation */ ! PyFrameObject *cbframe; ! ! if (gen == NULL || gen->gi_frame->f_back == NULL) ! return -1; ! cbframe = gen->gi_frame->f_back; ! res = slp_register_execute(cbframe->ob_type, "gen_iternext_callback", ! gen->gi_frame->f_back->f_execute, ! REF_INVALID_EXEC(gen_iternext_callback)) ! || init_type(&wrap_PyGenerator_Type, initchain); ! Py_DECREF(gen); ! return res; } #undef initchain _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 00:11:31 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 00:11:31 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/scripts dutree.doc, 1.1.1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/scripts In directory centera.de:/tmp/cvs-serv13270/src/Tools/scripts Modified Files: dutree.doc Log Message: checking Python 2.2.3 back in, almost unmodified. The only modifications are in PCbuild, and the additon of the new Stackless for 2.3.3 trunk. Purpose: I will apply all current changes to 2.3.3 back to 2.2.3. Since I'm unsure how to do this on the current dev trunk by CVS, and since I never imported 2.2.3 before, I prefer to do it this way, using the merge program explicitly. Index: dutree.doc =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Tools/scripts/dutree.doc,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** dutree.doc 21 Jan 2002 01:01:45 -0000 1.1.1.1 --- dutree.doc 30 Apr 2004 22:11:28 -0000 1.2 *************** *** 1,54 **** ! Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet ! From: tchrist at convex.COM (Tom Christiansen) ! Newsgroups: comp.lang.perl ! Subject: Re: The problems of Perl (Re: Question (silly?)) ! Message-ID: <1992Jan17.053115.4220 at convex.com> ! Date: 17 Jan 92 05:31:15 GMT ! References: <17458 at ector.cs.purdue.edu> <1992Jan16.165347.25583 at cherokee.uswest.com> <=#Hues+4 at cs.psu.edu> ! Sender: usenet at convex.com (news access account) ! Reply-To: tchrist at convex.COM (Tom Christiansen) ! Organization: CONVEX Realtime Development, Colorado Springs, CO ! Lines: 83 ! Nntp-Posting-Host: pixel.convex.com ! ! From the keyboard of flee at cs.psu.edu (Felix Lee): ! :And Perl is definitely awkward with data types. I haven't yet found a ! :pleasant way of shoving non-trivial data types into Perl's grammar. ! ! Yes, it's pretty aweful at that, alright. Sometimes I write perl programs ! that need them, and sometimes it just takes a little creativity. But ! sometimes it's not worth it. I actually wrote a C program the other day ! (gasp) because I didn't want to deal with a game matrix with six links per node. ! ! :Here's a very simple problem that's tricky to express in Perl: process ! :the output of "du" to produce output that's indented to reflect the ! :tree structure, and with each subtree sorted by size. Something like: ! : 434 /etc ! : | 344 . ! : | 50 install ! : | 35 uucp ! : | 3 nserve ! : | | 2 . ! : | | 1 auth.info ! : | 1 sm ! : | 1 sm.bak ! ! At first I thought I could just keep one local list around ! at once, but this seems inherently recursive. Which means ! I need an real recursive data structure. Maybe you could ! do it with one of the %assoc arrays Larry uses in the begat ! programs, but I broke down and got dirty. I think the hardest ! part was matching Felix's desired output exactly. It's not ! blazingly fast: I should probably inline the &childof routine, ! but it *was* faster to write than I could have written the ! equivalent C program. ! ! ! --tom ! ! -- ! "GUIs normally make it simple to accomplish simple actions and impossible ! to accomplish complex actions." --Doug Gwyn (22/Jun/91 in comp.unix.wizards) ! ! Tom Christiansen tchrist at convex.com convex!tchrist ! --- 1,54 ---- ! Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet ! From: tchrist at convex.COM (Tom Christiansen) ! Newsgroups: comp.lang.perl ! Subject: Re: The problems of Perl (Re: Question (silly?)) ! Message-ID: <1992Jan17.053115.4220 at convex.com> ! Date: 17 Jan 92 05:31:15 GMT ! References: <17458 at ector.cs.purdue.edu> <1992Jan16.165347.25583 at cherokee.uswest.com> <=#Hues+4 at cs.psu.edu> ! Sender: usenet at convex.com (news access account) ! Reply-To: tchrist at convex.COM (Tom Christiansen) ! Organization: CONVEX Realtime Development, Colorado Springs, CO ! Lines: 83 ! Nntp-Posting-Host: pixel.convex.com ! ! From the keyboard of flee at cs.psu.edu (Felix Lee): ! :And Perl is definitely awkward with data types. I haven't yet found a ! :pleasant way of shoving non-trivial data types into Perl's grammar. ! ! Yes, it's pretty aweful at that, alright. Sometimes I write perl programs ! that need them, and sometimes it just takes a little creativity. But ! sometimes it's not worth it. I actually wrote a C program the other day ! (gasp) because I didn't want to deal with a game matrix with six links per node. ! ! :Here's a very simple problem that's tricky to express in Perl: process ! :the output of "du" to produce output that's indented to reflect the ! :tree structure, and with each subtree sorted by size. Something like: ! : 434 /etc ! : | 344 . ! : | 50 install ! : | 35 uucp ! : | 3 nserve ! : | | 2 . ! : | | 1 auth.info ! : | 1 sm ! : | 1 sm.bak ! ! At first I thought I could just keep one local list around ! at once, but this seems inherently recursive. Which means ! I need an real recursive data structure. Maybe you could ! do it with one of the %assoc arrays Larry uses in the begat ! programs, but I broke down and got dirty. I think the hardest ! part was matching Felix's desired output exactly. It's not ! blazingly fast: I should probably inline the &childof routine, ! but it *was* faster to write than I could have written the ! equivalent C program. ! ! ! --tom ! ! -- ! "GUIs normally make it simple to accomplish simple actions and impossible ! to accomplish complex actions." --Doug Gwyn (22/Jun/91 in comp.unix.wizards) ! ! Tom Christiansen tchrist at convex.com convex!tchrist ! _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 17:07:08 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 17:07:08 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Objects descrobject.c, 1.13, 1.14 methodobject.c, 1.9, 1.10 Message-ID: Update of /home/cvs/slpdev/src/2.3/dev/Objects In directory centera.de:/tmp/cvs-serv19228/2.3/dev/Objects Modified Files: descrobject.c methodobject.c Log Message: initial working version. Index: descrobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Objects/descrobject.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** descrobject.c 29 Apr 2004 17:58:58 -0000 1.13 --- descrobject.c 2 May 2004 15:07:06 -0000 1.14 *************** *** 983,987 **** } #else ! #define WRAP_RETURN(call) return (call) #endif --- 983,987 ---- } #else ! #define WRAP_RETURN(call) return (call); #endif *************** *** 997,1001 **** if (wp->descr->d_base->flags & PyWrapperFlag_KEYWORDS) { wrapperfunc_kwds wk = (wrapperfunc_kwds)wrapper; ! WRAP_RETURN( (*wk)(self, args, wp->descr->d_wrapped, kwds) ); } --- 997,1001 ---- if (wp->descr->d_base->flags & PyWrapperFlag_KEYWORDS) { wrapperfunc_kwds wk = (wrapperfunc_kwds)wrapper; ! WRAP_RETURN( (*wk)(self, args, wp->descr->d_wrapped, kwds) ) } *************** *** 1006,1010 **** return NULL; } ! WRAP_RETURN( (*wrapper)(self, args, wp->descr->d_wrapped) ); } --- 1006,1010 ---- return NULL; } ! WRAP_RETURN( (*wrapper)(self, args, wp->descr->d_wrapped) ) } Index: methodobject.c =================================================================== RCS file: /home/cvs/slpdev/src/2.3/dev/Objects/methodobject.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** methodobject.c 29 Apr 2004 17:58:58 -0000 1.9 --- methodobject.c 2 May 2004 15:07:06 -0000 1.10 *************** *** 70,74 **** } #else ! #define WRAP_RETURN(call) return (call) #endif --- 70,74 ---- } #else ! #define WRAP_RETURN(call) return (call); #endif *************** *** 91,104 **** case METH_VARARGS: if (kw == NULL || PyDict_Size(kw) == 0) ! WRAP_RETURN( (*meth)(self, arg) ); break; case METH_VARARGS | METH_KEYWORDS: case METH_OLDARGS | METH_KEYWORDS: ! WRAP_RETURN( (*(PyCFunctionWithKeywords)meth)(self, arg, kw) ); case METH_NOARGS: if (kw == NULL || PyDict_Size(kw) == 0) { size = PyTuple_GET_SIZE(arg); if (size == 0) ! WRAP_RETURN( (*meth)(self, NULL) ); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%d given)", --- 91,104 ---- case METH_VARARGS: if (kw == NULL || PyDict_Size(kw) == 0) ! WRAP_RETURN( (*meth)(self, arg) ) break; case METH_VARARGS | METH_KEYWORDS: case METH_OLDARGS | METH_KEYWORDS: ! WRAP_RETURN( (*(PyCFunctionWithKeywords)meth)(self, arg, kw) ) case METH_NOARGS: if (kw == NULL || PyDict_Size(kw) == 0) { size = PyTuple_GET_SIZE(arg); if (size == 0) ! WRAP_RETURN( (*meth)(self, NULL) ) PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%d given)", *************** *** 111,115 **** size = PyTuple_GET_SIZE(arg); if (size == 1) ! WRAP_RETURN( (*meth)(self, PyTuple_GET_ITEM(arg, 0)) ); PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%d given)", --- 111,115 ---- size = PyTuple_GET_SIZE(arg); if (size == 1) ! WRAP_RETURN( (*meth)(self, PyTuple_GET_ITEM(arg, 0)) ) PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%d given)", *************** *** 126,130 **** else if (size == 0) arg = NULL; ! WRAP_RETURN( (*meth)(self, arg) ); } break; --- 126,130 ---- else if (size == 0) arg = NULL; ! WRAP_RETURN( (*meth)(self, arg) ) } break; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:30 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:30 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj Credits.rtf, NONE, 1.1 InfoPlist.strings, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSX/PythonLauncher/English.lproj Added Files: Credits.rtf InfoPlist.strings Log Message: added files --- NEW FILE: Credits.rtf --- {\rtf1\mac\ansicpg10000\cocoartf100 {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b\fs24 \cf0 Engineering: \f1\b0 \ Jack Jansen\ \ \f0\b Human Interface Design: \f1\b0 \ Jack Jansen\ \ \f0\b Testing: \f1\b0 \ Jack Jansen\ Pythonmac-SIG at python.org\ \ \f0\b Documentation: \f1\b0 \ Missing\ \ \f0\b With special thanks to: \f1\b0 \ Guido, of course\ } --- NEW FILE: InfoPlist.strings --- ?? _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:49 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:49 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Tools/faqwiz move-faqwiz.sh, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Tools/faqwiz In directory centera.de:/home/tismer/slpdev/src/2.2/src/Tools/faqwiz Added Files: move-faqwiz.sh Log Message: added files --- NEW FILE: move-faqwiz.sh --- #!/bin/sh # # Christian Reis # # Moves # # Example: # # blackjesus:~> ./move-faqwiz.sh 2\.1 3\.2 # Moving FAQ question 02.001 to 03.002 if [ x$2 == x ]; then echo "Need 2 args: original_version final_version." exit 2 fi if [ ! -d data -o ! -d data/RCS ]; then echo "Run this inside the faqwiz data/ directory's parent dir." exit 2 fi function cut_n_pad() { t=`echo $1 | cut -d. -f $2` export $3=`echo $t | awk "{ tmp = \\$0; l = length(tmp); for (i = 0; i < $2-l+1; i++) { tmp = "0".tmp } print tmp }"` } cut_n_pad $1 1 prefix1 cut_n_pad $1 2 suffix1 cut_n_pad $2 1 prefix2 cut_n_pad $2 2 suffix2 tmpfile=tmp$RANDOM.tmp file1=faq$prefix1.$suffix1.htp file2=faq$prefix2.$suffix2.htp echo "Moving FAQ question $prefix1.$suffix1 to $prefix2.$suffix2" sed -e "s/$1\./$2\./g" data/$file1 > ${tmpfile}1 sed -e "s/$1\./$2\./g" data/RCS/$file1,v > ${tmpfile}2 if [ -f data/$file2 ]; then echo "Target FAQ exists. Won't clobber." exit 2 fi mv ${tmpfile}1 data/$file2 mv ${tmpfile}2 data/RCS/$file2,v mv data/$file1 data/$file1.orig mv data/RCS/$file1,v data/RCS/$file1,v.orig _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sun May 2 17:05:27 2004 From: tismer at centera.de (Christian Tismer) Date: Sun, 02 May 2004 17:05:27 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Stackless/pickling prickelpit.c, 1.76, 1.77 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Stackless/pickling In directory centera.de:/tmp/cvs-serv19072/2.2/src/Stackless/pickling Modified Files: prickelpit.c Log Message: avoid gc during PyType_Ready Index: prickelpit.c =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Stackless/pickling/prickelpit.c,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -d -r1.76 -r1.77 *** prickelpit.c 2 May 2004 14:31:05 -0000 1.76 --- prickelpit.c 2 May 2004 15:05:25 -0000 1.77 *************** *** 248,251 **** --- 248,253 ---- retval = PyMapping_GetItemString(globals, retname); } + /* clear cycles early. Py 2.2.3 doesn't like GC during Type_Ready */ + PyDict_Clear(globals); Py_DECREF(globals); return retval; _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:05 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:05 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Demo/newmetaclasses Eiffel.py, NONE, 1.1 Enum.py, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Demo/newmetaclasses In directory centera.de:/home/tismer/slpdev/src/2.2/src/Demo/newmetaclasses Added Files: Eiffel.py Enum.py Log Message: added files --- NEW FILE: Eiffel.py --- """Support Eiffel-style preconditions and postconditions.""" from new import function class EiffelBaseMetaClass(type): def __new__(meta, name, bases, dict): meta.convert_methods(dict) return super(EiffelBaseMetaClass, meta).__new__(meta, name, bases, dict) def convert_methods(cls, dict): """Replace functions in dict with EiffelMethod wrappers. The dict is modified in place. If a method ends in _pre or _post, it is removed from the dict regardless of whether there is a corresponding method. """ # find methods with pre or post conditions methods = [] for k, v in dict.iteritems(): if k.endswith('_pre') or k.endswith('_post'): assert isinstance(v, function) elif isinstance(v, function): methods.append(k) for m in methods: pre = dict.get("%s_pre" % m) post = dict.get("%s_post" % m) if pre or post: dict[k] = cls.make_eiffel_method(dict[m], pre, post) convert_methods = classmethod(convert_methods) class EiffelMetaClass1(EiffelBaseMetaClass): # an implementation of the "eiffel" meta class that uses nested functions def make_eiffel_method(func, pre, post): def method(self, *args, **kwargs): if pre: pre(self, *args, **kwargs) x = func(self, *args, **kwargs) if post: post(self, x, *args, **kwargs) return x if func.__doc__: method.__doc__ = func.__doc__ return method make_eiffel_method = staticmethod(make_eiffel_method) class EiffelMethodWrapper: def __init__(self, inst, descr): self._inst = inst self._descr = descr def __call__(self, *args, **kwargs): return self._descr.callmethod(self._inst, args, kwargs) class EiffelDescriptor(object): def __init__(self, func, pre, post): self._func = func self._pre = pre self._post = post self.__name__ = func.__name__ self.__doc__ = func.__doc__ def __get__(self, obj, cls): return EiffelMethodWrapper(obj, self) def callmethod(self, inst, args, kwargs): if self._pre: self._pre(inst, *args, **kwargs) x = self._func(inst, *args, **kwargs) if self._post: self._post(inst, x, *args, **kwargs) return x class EiffelMetaClass2(EiffelBaseMetaClass): # an implementation of the "eiffel" meta class that uses descriptors make_eiffel_method = EiffelDescriptor def _test(metaclass): class Eiffel: __metaclass__ = metaclass class Test(Eiffel): def m(self, arg): """Make it a little larger""" return arg + 1 def m2(self, arg): """Make it a little larger""" return arg + 1 def m2_pre(self, arg): assert arg > 0 def m2_post(self, result, arg): assert result > arg class Sub(Test): def m2(self, arg): return arg**2 def m2_post(self, Result, arg): super(Sub, self).m2_post(Result, arg) assert Result < 100 t = Test() t.m(1) t.m2(1) try: t.m2(0) except AssertionError: pass else: assert False s = Sub() try: s.m2(1) except AssertionError: pass # result == arg else: assert False try: s.m2(10) except AssertionError: pass # result == 100 else: assert False s.m2(5) if __name__ == "__main__": _test(EiffelMetaClass1) _test(EiffelMetaClass2) --- NEW FILE: Enum.py --- """Enumeration metaclass.""" class EnumMetaclass(type): """Metaclass for enumeration. To define your own enumeration, do something like class Color(Enum): red = 1 green = 2 blue = 3 Now, Color.red, Color.green and Color.blue behave totally different: they are enumerated values, not integers. Enumerations cannot be instantiated; however they can be subclassed. """ def __init__(cls, name, bases, dict): super(EnumMetaclass, cls).__init__(name, bases, dict) cls._members = [] for attr in dict.keys(): if not (attr.startswith('__') and attr.endswith('__')): enumval = EnumInstance(name, attr, dict[attr]) setattr(cls, attr, enumval) cls._members.append(attr) def __getattr__(cls, name): if name == "__members__": return cls._members raise AttributeError, name def __repr__(cls): s1 = s2 = "" enumbases = [base.__name__ for base in cls.__bases__ if isinstance(base, EnumMetaclass) and not base is Enum] if enumbases: s1 = "(%s)" % ", ".join(enumbases) enumvalues = ["%s: %d" % (val, getattr(cls, val)) for val in cls._members] if enumvalues: s2 = ": {%s}" % ", ".join(enumvalues) return "%s%s%s" % (cls.__name__, s1, s2) class FullEnumMetaclass(EnumMetaclass): """Metaclass for full enumerations. A full enumeration displays all the values defined in base classes. """ def __init__(cls, name, bases, dict): super(FullEnumMetaclass, cls).__init__(name, bases, dict) for obj in cls.__mro__: if isinstance(obj, EnumMetaclass): for attr in obj._members: # XXX inefficient if not attr in cls._members: cls._members.append(attr) class EnumInstance(int): """Class to represent an enumeration value. EnumInstance('Color', 'red', 12) prints as 'Color.red' and behaves like the integer 12 when compared, but doesn't support arithmetic. XXX Should it record the actual enumeration rather than just its name? """ def __new__(cls, classname, enumname, value): return int.__new__(cls, value) def __init__(self, classname, enumname, value): self.__classname = classname self.__enumname = enumname def __repr__(self): return "EnumInstance(%s, %s, %d)" % (self.__classname, self.__enumname, self) def __str__(self): return "%s.%s" % (self.__classname, self.__enumname) class Enum: __metaclass__ = EnumMetaclass class FullEnum: __metaclass__ = FullEnumMetaclass def _test(): class Color(Enum): red = 1 green = 2 blue = 3 print Color.red print repr(Color.red) print Color.red == Color.red print Color.red == Color.blue print Color.red == 1 print Color.red == 2 class ExtendedColor(Color): white = 0 orange = 4 yellow = 5 purple = 6 black = 7 print ExtendedColor.orange print ExtendedColor.red print Color.red == ExtendedColor.red class OtherColor(Enum): white = 4 blue = 5 class MergedColor(Color, OtherColor): pass print MergedColor.red print MergedColor.white print Color print ExtendedColor print OtherColor print MergedColor def _test2(): class Color(FullEnum): red = 1 green = 2 blue = 3 print Color.red print repr(Color.red) print Color.red == Color.red print Color.red == Color.blue print Color.red == 1 print Color.red == 2 class ExtendedColor(Color): white = 0 orange = 4 yellow = 5 purple = 6 black = 7 print ExtendedColor.orange print ExtendedColor.red print Color.red == ExtendedColor.red class OtherColor(FullEnum): white = 4 blue = 5 class MergedColor(Color, OtherColor): pass print MergedColor.red print MergedColor.white print Color print ExtendedColor print OtherColor print MergedColor if __name__ == '__main__': _test() _test2() _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Tue May 4 21:34:45 2004 From: tismer at centera.de (Christian Tismer) Date: Tue, 04 May 2004 21:34:45 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src configure.in,1.9,1.10 Message-ID: Update of /home/cvs/slpdev/src/2.2/src In directory centera.de:/tmp/cvs-serv22375/2.2/src Modified Files: configure.in Log Message: moved slpconf.sh stuff into configure.in Index: configure.in =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/configure.in,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** configure.in 4 May 2004 17:58:14 -0000 1.9 --- configure.in 4 May 2004 19:34:42 -0000 1.10 *************** *** 3049,3052 **** --- 3049,3060 ---- AC_MSG_RESULT(done) + AC_SUBST(SLPFLAGS) + SLPFLAGS="-fno-omit-frame-pointer -O2" + case $MACHDEP in + darwin) SLPFLAGS="-fomit-frame-pointer -O2";; + '') SLPFLAGS="-fno-omit-frame-pointer -O2";; + esac + + # generate output files AC_CONFIG_FILES(Makefile.pre Modules/Setup.config) _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:34 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:34 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSXResources/iconsrc IDE.psd, NONE, 1.1 PackageManager.psd, NONE, 1.1 PythonApplet.psd, NONE, 1.1 PythonWSource.psd, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSXResources/iconsrc In directory centera.de:/home/tismer/slpdev/src/2.2/src/Mac/OSXResources/iconsrc Added Files: IDE.psd PackageManager.psd PythonApplet.psd PythonWSource.psd Log Message: added files --- NEW FILE: IDE.psd --- 8BPS         ??   O?]C ???wz???wm???????>??e?X??G???? ?;f5?4?K?c?s}?b1?????L'?? ??% @???(?????????????????????????????????????????????????????????????????????? ???????????.????Q????????????????????????????????????????????????????????????????????????????????q????:,???????????????????????????????????????????????????????????????????????????????????????? ?????????????#?????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????T???? ??????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????? L?????????????@?????????????????????????????????????????????????????????????????????????=???&n??????????????????;??????????????????????????????????????????????????????????????????????)????????????????????9????????????????????????????????????????????????????????????????????????????????????????8?????????????????????????????????????????????????????????????????+???o???????????????????9????????????????????????????????????????????????????????????????l???8???????????????????7???????????????????????????????????????????????????????????????????????????????????????2??????????????????????????????????????????????????????????????????_???????????????????3??????????????????????????????????????????????????????????????O????%??????????????????????? ???????????????????????????????|?????????????????????????????-???????????????????????????????????????????? ?????????????????????  )UFCED=6TD????@????????????????,?????????????????????????????????????????????????????????ree^I' S^RMFDE at 8@B ???? ?????????{???????$????????????????????????????????????????????????????????????['irVTLGFC@=;Y???? ?p???????wh??????????????????????????????????????????????????????????????Q&]?]VTMJGC>=8U???? ?????????z]~????????????????????????????????????? ????%??????p???????????????????????????????????????????????????????????!?????????????????????????????????B??????????js?}???????? ???????????????A???????????????????????????????????????????????????????????????????????????v`nf??e????????????????????F????????????????????????????~??????????????????o??????????????????????3??????????nDV?{Mx???????????????????G???????????????????????????????????????????????t?????????????????????????????????_??R8W????????????E?????????~?????????????????????????????????????????}}?q?????????????????????'?????????????nnt???????&?????????????????????????????????????????!????????????????lOhr???????????????????s???? ??????????????!??????????????????????????????????????????????????????b??????????????????????(????-??????i???????????????????????????????????????????#??????????????????ZgZ?????????????????????t????'????vdNy???????????????????????????????????? &?????y??????K???????????????????????????????w????????????????????????????????????????qG# ???? ?????z??????E????????????????????????????????ni????????????kaw??????????????????b8???? ??????~?????=????????????????????????x????????????????[}}??????????????{R- ???? j?????o?????:?????????????????????v?????????????????????????????????nD???? C?????q???????3?????????????????????????????????????????????????b:???? #??????????????.?????????????????????????????????????u~????zR, ???? ??????????????+??????????????????????????????????????`k`F"???? ??????y???????'?????????????????????????????????????>"???? h?????|?????????$????????????????????????????????????Z???? B???????????????$???????h???????????????????????????????? !??????????????"??????????????????????}???????????Z???? ???????????????????????????????k_]d???????????????? ?????????????????????????w`JYbp|?????????????I???? g?????????????$?????????????sM:8Lg~????????????????|????3A???????????????????????g^]cOIm????????Z???????????(????2?????[{???????????i]^agx??????????`-?|?????????e????$mf>?9???????xb[`js????????????R! ?? B????????????? {wqeb]enx??????????????x: ?? ????????B????!W|????????????????Z%?? F???????? h???????????????D?? K_????O????????????`%???? !??????????L???? ???????j/????B????W!???? ?}=???? !L????????????????????? ????>??????????????????????????????????????????????????????????????????? ???????????.????Q????????????????????????????????????????????????????????????????????????????????q????:,???????????????????????????????????????????????????????????????????????????????????????? ?????????????#?????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????T???? ??????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????? L?????????????@?????????????????????????????????????????????????????????????????????????=???&n??????????????????;??????????????????????????????????????????????????????????????????????)????????????????????9????????????????????????????????????????????????????????????????????????????????????????8?????????????????????????????????????????????????????????????????+???o???????????????????9????????????????????????????????????????????????????????????????l???8???????????????????7???????????????????????????????????????????????????????????????????????????????????????2??????????????????????????????????????????????????????????????????_???????????????????3??????????????????????????????????????????????????????????????O????%??????????????????????? ???????????????????????????????|?????????????????????????????-???????????????????????????????????????????? ????????????????????? (?????????g????.?????????????? ???????????????9???????????????????????????????????????V??s8   E<61&1r?????????????????????)???????????????????????????????????????????? ?????????????Sf= B4232*!A=???? ??????????????????,?????????????????????????????????????????????????????????ree^I' AL@;413/&-5 ????? ?????????z???????$????????????????????????????????????????????????????????????[' U_DC:651/,$A??????o???????wh??????????????????????????????????????????????????????????????Q KzKDB<;61--"@???? ?????????z]~????????????????????????????????????? ???????????????????????????????????????????????????????????b?????????`r?~G? ;????????????????????????????????????????????????????????????????????XQ????????l???q?+#???? ???????????????? ????????????????????????????????????%????????????????eTY[ay???????????4 ???? ???????????????????????????????????????????????.????????????????????????wj`bd_fj?????????A?4 ??????????????????????????????????????????????????????????????????????????????kk_^`]cdY??????????*?????? ??????????????????????????????????????????????????????????????????????????vok_^\^`g^z????????? ! ???????? ????????????? ?????????????????????????????????????'??????????{????}pli__`q??????????r ????%??????p???????????????????????????????????????????????????????????!????o|{spojft????????????????????B?????? ????js?}???????? ???????????????A??????????????????????????????????zw|unokg\???????????????????????????????v_me??f????????????????????F????????????????????????????~??????????n?ypmngZo??????????????????????3??????????oEW?zNx???????????????????G???????????????????????????????????????y{~wqpke_??????????????????????????????????a??R5W????????????E?????????~??????????????????????????????????v?yqpoid}?q?????????????????????'?????????????nns???????&?????????????????????????????????????????!????????u}zrml_lOhr???????????????????s???? ?????????????!??????????????????????????????????????????????ut{}wpkdN??????????????????????(????-??????i???????????????????????????????????????????#??????????rxwwrlhRZgZ?????????????????????t????'????vdNy???????????????????????????????????? &?????y??????K???????????????????????????????w?????zz?~legpdaw????????????????????????qG# ???? ?????z??????E????????????????????????????????ni??u??rgdmm^fiaw??????????????????b8???? ??????~?????=????????????????????????x??????w?uiehodYK}}??????????????{R- ???? j?????o?????:?????????????????????v??????????u?vngcnl^`?????????????nD???? C?????q???????3?????????????????????????????n?~pjehpecz?????????b:???? #??????????????.???????????????????????????v{?skegmkb\~????zR, ???? ??????????????+????????????????????????????k??ohemkfW`k`F"???? ??????y???????'???????????????????????????s?zlhkme^2"???? h?????|?????????$???????????????????????????o??tlkngc4???? B???????????????$???????h??????????????????k??qknjdS???? !??????????????"??????????????????????}qls??smilf_/???? ???????????????????????????????k_]dxsp??{qjgfdT???? ?????????????????????????w`JYbp|?? u???tngffc&???? g?????????????$?????????????sM:8Lg~?????{v???{ogdfhK????3A???????????????????????g^]cOIm????????T\o???rlcdgc????2?????[{???????????i]^agx??????????`-? Ml??~mfbfh:????$mf>?9???????xb[`js????????????R! ?? ,p??wgbgl]???? {wqeb]enx??????????????x: ?? .z?uegof#????!W|????????????????Z%??-LQlnF???? h???????????????D?? &,????O????????????`%???? !??????????L???? ???????j/????B????W!???? ?}=???? !L????????????????????? ????>??????????????????????????????????????????????????????????????????? ???????????.????Q????????????????????????????????????????????????????????????????????????????????q????:,???????????????????????????????????????????????????????????????????????????????????????? ?????????????#?????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????T???? ??????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????? L?????????????@?????????????????????????????????????????????????????????????????????????=???&n??????????????????;??????????????????????????????????????????????????????????????????????)????????????????????9????????????????????????????????????????????????????????????????????????????????????????8?????????????????????????????????????????????????????????????????+???o???????????????????9????????????????????????????????????????????????????????????????l???8???????????????????7???????????????????????????????????????????????????????????????????????????????????????2??????????????????????????????????????????????????????????????????_???????????????????3??????????????????????????????????????????????????????????????O????%??????????????????????? ???????????????????????????????|?????????????????????????????-???????????????????????????????????????????? ????????????????????? ;76.'k????? ??????????????????)???????????????????????????????????????????? ?????????????Sc9 ://11'89?????A????????????????,?????????????????????????????????????????????????????????ree^I'  ?G>7/-.+ #- ??????????????{???????$????????????????????????????????????????????????????????????[' V_B at 831-+&8??????p???????wi???????????????????????????????????????????????????????????????QJxIB@:73-(*6 ???? ?????????z]~????????????????????????????????????? 1 ???????????????????????????????????????????????????????????????????i*}???????l???q?( ???? ???????????????? ????????????????????????????????????%????????????????"$$2P???????????/ ???? ???????????????????????????????????????????????.????????????????????????:'*(.,6Dg????????A?0 ?????????????????????????????????????????????????????????????????????????????{%/+$*+8/7y?????????&?????? ?????????????????????????????????????????????????????????????????????????<.0&%")05Ly????????? ????????????? ?????????????????????????????????????'??????????{???LAF641*,2q??????????r ????%??????q???????????????????????????????????????????????????????????!???~*CB:8739s????????????????????B??????????js?}???????? ???????????????A??????????????????????????????????;:E=4644=????????????????????????????????v`nf??f????????????????????F????????????????????????????~?????????n%G at 84512o??????????????????????3??????????nEV?{Nx???????????????????G???????????????????????????????????????8;D<7759Z?????????????????????????????????`??R4Y????????????E?????????~?????????????????????????????????`2F<6799R}?q?????????????????????'?????????????nns???????&?????????????????????????????????????????!????????1CC=778;lOhr???????????????????s???? ?????????????!??????????????????????????????????????????????83CE;872???????????????????????(????-??????i???????????????????????????????????????????#?????????g-A=<877/ZgZ?????????????????????t????'????vdNy???????????????????????????????????? &?????y??????K???????????????????????????????w?????>>QK1(-:11h????????????????????????qG# ???? ?????z??????E????????????????????????????????ni?v8RL:+(6:)?iaw??????????????????b8???? ??????~?????=????????????????????????x??????4GK?/)/=/(A}}??????????????{R- ???? j?????o?????:?????????????????????v?????????^2Q?5,*:7-I?????????????nD???? C?????q???????3?????????????????????????????-LK7/+0=1>z?????????b:???? #??????????????.???????????????????????????@@Y=0+-872K~????zR, ???? ??????????????+???????????????????????????z+\S5,,4809`k`F"???? ??????y???????'???????????????????????????8EdC1+27.0*"???? h?????|?????????$??????????????????????????X/_]:..92-???? B???????????????$???????h?????????????????p.OjJ2-650( :U]A1*/5- ?6 ?N ?o m??? ??.m???? 8???? !)28>CFFEA<5/& ? ? ? ? ? ? ? ? ? ? ????????????????????? 2,)????????????? 23,????????????? 210????????????? 211???????????? ??(43????C?R??7(??)434+?? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? ? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? fg?ff???????? ??????efeeff????? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? ?????????????????????????????????????????????????????????????????????????????????????????? ???????????????@??????????????????????????????????????????????????????????????????????????????????????????????????;???????????????????????????????????????????????????????????????????????????????????????????????9???????????????????????????????????????????????????????????????????????????????????????????????9??????????????????????????????????????????????????????????????????????????????????????????????9????????????????????????????????????????????????????????????????????????????????????????????8????????????????????????????????????????????????????????????????????K?????????????????????????????????k????z?????????????????????????????????????????????????????I???????????????????????????????s????om???????????????????????????????????????????????????&????????????????????????????????3DTO93f?????????????????????|?????????????????????????????????????????????????????????&??=%h??<-??????????????????????????????????????  )UFCED=6?????????????????????????h?37??????????????????????????????????????ree^I' S^RMFDE at 8??????????????????????????I?34V?????????????????????????????????????????['irVTLGFC@=;??????q????????????????]?323z???????????????????????????????????Q&]?]VTMJGC>=8???????????????????????U?3x????????????? J?????????????? ??(43????C?R??7(??)45w???????????????????????????????????????????????????????????>??????????k5?3'1??#k???Q233???A>???m(??7(??'43=??????????0?????????z????????????????????????????????????8!??????????J3?43zw"??f?4Q^??Cd??$v}6/?b,544?????????????????????????????????????????????????????????` ??????y??????K???????????????????????????????w???????????????????????????????????????????????? ??????z??????E????????????????????????????????ni????????????kaw????????????????????????? ??????~?????=????????????????????????x????????????????[}}?????????????????????? ??????o?????:?????????????????????v????????????????????????????????????????? ??????q???????3???????????????????????????????????????????????????????? ???????????????.?????????????????????????????????????u~???????????? ???????????????+??????????????????????????????????????`????????? ??????y???????'???????????????????????????????????????????? ??????|?????????!???????????????????????????????????????? ????????????????$???????h????????????????????????????????? ???????????????"??????????????????????}???????????????? ????????????????????????????????k_]d????????????????? ?????????????????????????w`JYbp|?????????????????? ??????????????$?????????????sM:8Lg~?????????????????????3????????????????????????g^]cOIm?????????????????????????2???????????????????i]^agx?????????????????????????????$???????????????xb[`js????????????????? ???????????????????eb]enx??????????????????? ???????????????W|?????????????????????????????????????????????????????????????????????????????????? ?????????????????? ??????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????? ???????????????@??????????????????????????????????????????????????????????????????????????????????????????????????;???????????????????????????????????????????????????????????????????????????????????????????????9???????????????????????????????????????????????????????????????????????????????????????????????9??????????????????????????????????????????????????????????????????????????????????????????????9????????????????????????????????????????????????????????????????????????????????????????????8????????????????????????????????????????????????????????????????????K????????????????????????????????~]x??~i?????????????????????????????????????????????????????I??????????????????????f ??????^p?}XV???????????h ??????????????????????????????????????&???????????????????????g ??????1* K?????????_??????????|???????????????????????????????????????????? ???????f ???&??  G???5j?????????????????????????????????Eo65& (??????????????????? ?????   E<61&1r???????????????? ? ?????? ???????????s? ?????????????? v5 ! ???????????)? ?????" ??????y??????K???????????????????????????????w?????zz?~legpdaw???????????????????????????????? ??????z??????E????????????????????????????????ni??u??rgdmm^fiaw????????????????????????? ??????~?????=????????????????????????x??????w?uiehodYK}}?????????????????????? ??????o?????:?????????????????????v??????????u?vngcnl^`????????????????????? ??????q???????3?????????????????????????????n?~pjehpecz???????????????? ???????????????.???????????????????????????v{?skegmkb\~???????????? ???????????????+????????????????????????????k??ohemkfW`????????? ??????y???????'???????????????????????????s?zlhkmeu??????? ??????|?????????$???????????????????????????o??tlkngc????? ????????????????$???????h??????????????????k??qknjdr????? ???????????????"??????????????????????}qls??smilf_????? ????????????????????????????????k_]dxsp??{qjgfds????? ?????????????????????????w`JYbp|?? u???tngffq????? ??????????????$?????????????sM:8Lg~?????{v???{ogdfh?????3????????????????????????g^]cOIm?????????\o???rlcdgq?????2???????????????????i]^agx???????????????l??~mfbfh?????$???????????????xb[`js????????????????? ?p??wgbglq?????????eb]enx??????????????????? ????uegof??????W|???????????????????????|hln~?????????????????????????????????????????????????????? ?????????????????? ??????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????? ???????????????@??????????????????????????????????????????????????????????????????????????????????????????????????;???????????????????????????????????????????????????????????????????????????????????????????????9???????????????????????????????????????????????????????????????????????????????????????????????9??????????????????????????????????????????????????????????????????????????????????????????????9????????????????????????????????????????????????????????????????????????????????????????????8????????????????????????????????????????????????????????????????????K????????????????????????????????????????????????????????????????????????????????????????????I???????????????????t????m?????????????????????????l??????????????????????????????????????&????????????????????????m????????????????????????j??????????|????????????????????????????????????????????l????????l???&????sRY???????????????????????????????????????? ;76.'k????????????????f???k???????????h???????????????????? ?????????????Sc9 ://11'?????????????????f???k???????????h?????????????????????????????????ree^I'  ?G>7/-.+ ??????????????????e???????????????x??u??????????????????????????????????[' V_B at 831-+&??????q?????????f?????????????????u?????????????????????????????QJxIB@:73-(*????????????????f???????????????v??????? ??????????????? ????????????'????{>?,e?????D*??b,??Z?????????????????????????????????????{%/+$*+8/7y??????????&?????+????????????/;?B at r???^E?h=6;N?@>:C??????????????????????????????????????<.0&%")05Ly?????????????????????????\)=?>QK1(-:11h???????????????????????????????? ??????z??????E????????????????????????????????ni?v8RL:+(6:)?iaw????????????????????????? ??????~?????=????????????????????????x??????4GK?/)/=/(A}}?????????????????????? ??????o?????:?????????????????????v?????????^2Q?5,*:7-I????????????????????? ??????q???????3?????????????????????????????-LK7/+0=1>z???????????????? ???????????????.???????????????????????????@@Y=0+-872K~???????????? ???????????????+???????????????????????????z+\S5,,4809`????????? ??????y???????'???????????????????????????8EdC1+27.N??????? ??????|?????????$??????????????????????????X/_]:..92-????? ????????????????$???????h?????????????????p.OjJ2-650O????? ???????????????"??????????????????????~\56fU8..73-????? ????????????????????????????????k_]di at -YcA3./32N????? ?????????????????????????w`JYbp|?|U1IiR62-/4D????? ??????????????$?????????????sM:8Lg~?????d5=j_=2.+14l????3????????????????????????g^]cOIm?????????7 MsN52(,4E?????2???????????????????i]^agx??????????????lNfG5.*24?????$???????????????xb[`js????????????????? ?:U]A1*/5G?????????eb]enx??????????????????? ??e\>)1:4??????W|???????????????????????\9+9e????????????????????????????~????????????????????????? ?????????????????? ??????????????????????????????????? ? .?????? -????? D???M? ? ? ? ? ? #???? ? ????? ,???? ? ???tP0 ? ? ???dI5# ? ? --- NEW FILE: PackageManager.psd --- 8BPS Adobe Photoshop Elements for Macintosh, version 2.0 adobe:docid:photoshop:73d2aeb8-403e-11d7-bce4-cedb9b9896f9 8BIM? com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2003-02-12T16:05:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIM? ESliceType leftOutsetlong         ??   ?O????{??3?wW??CdH???? ????. ? 9dffghijjklmnopqqrstuvvwxyzz{|}~??????3ded?eG ? ? ? ?? ? ????????!Ywxyzz{|}~????????????NSE?&Tgqjg?f ? ?? 1gV? Z{|}~?????f?????R?T?U ? .ZQ ? ? ? ? ?  /cK?$7?= ! ")<_N  +CcH /bO3;?=<3????QR?T?U?V?W?X?YX.#9Y`/  7?= &RU?V?W?X?YI*"<.+?=????? N?V?W?X?Y N1 #=/3?=?< E?V?W?XQ5 $=0!8?=?< $=1" ?? ?NV???T?@?? #7:$ ??Fgz??!?"9??T?B?? ,.4BE5/'??Hk???U2??W?>?? 2&Y??V0)??+ at N? ???Y$A??Dz4 3&Y?U0)?? /, at X[A0*? &$6MP7(# ?  ??"6E? ???j;aj???? !8RX8!? ??;P`?LIH???e:bj??? ? (%7JN6'&"? ??[q??pjh???f?/?35/??E?>??<'??342?*'&??*? ???  "#$$"  ?  k??+ ??? -??? ?  ?  ??  "#$$"  ?  ??)??.6'17?????????????????49_??7a*?? CKA54 at O; ??.ER?? ?&??7a+?? ???z{??sM??2GU??V9  ??9e-?? ???^X??=??+3???[<+??-O)? ??b[???7????%? ??G-";??,#? *???~{???? ???!*? ??W928X?? ?' &2tx????o? ?')??$.? ??iF(AGh??,4?3 29ce|~?xm^?/?35&??(6??310??fD'@Ff??Ja?] \`xy????}td[?]aL??>LV?KFE??eD(CHh??%z???????????? ??,??>LV?$!!??fD*HLg??1????????????? ??<??@MW? ??d?%ILg?? ?????? D?@NV?TON?? fF)AGe??Q???? ??S?ALV?521?? fF*AGg??Z???? ?[?LX?-+*?? eF&6?V?)p???? ?t-? DO?;76?? fI#3? W??? ??V'0?RLK?? fL??s???? ?n ?[UT?? fL? ? v???? ?r( ?ZTS?? eL? ?????? ??D ?\VU??fJ?w??? ???w+?[VU??fG ??+???? ??@??ZUT??eF? ????G??-*)??(?O?????[????Z????????????????????f??? ?)o??????????????????????u" ?????W ????' &v??e??|;-9[???V ????????????????z????'.y??2*??==??????: N???{iz???umf????z$????(D????(.?:1~?????C _??-  ?  "#$$"  ? rWWFLNKPZny?vr??????????????????????????T57?67577887?6 ?~???????Y5?34X????????????????????????????????????? ????????u=?3;?????????????????????????????????????? ????????V34?3!27a???????????????????????????????????????? ????????U5?3"6^??????????????????????????????????????????????????G?3$25J???????????????????????????????????????????????????S6?3?4#T???????????????????????????????????????????????????>?3&4D????????????????????????????????????????????????????=?3(5B??????????????????????????????????????????? ?????????~x?w ?????????????????????????????????????????????????? ?????????????????????????? ???j[UOJEE?????????h?CHMTY_dinr???zpq?????????????ta\VPKFA????????sA<@EJOU[afjnru???}ul|?????????????xfb]WRLGBf?????}C79=AFLQW\bgkoquw????yqh????v^???????-????jgc^YTMHBT???R568;>CHMSY^chlprtwy????}umg?????_OQe???????.????nkhd`[UOIDH<:88:=@DIOU[`einpsuvxz?????yrii??? ?rRPRTVq???????/????pnliea\VPKGC?>>@CGKQW\bfjnqsuvwyz?????}vnfu??? ??]OPRUW[^{???????.???qpnljfb]WSNIFDEGJNSX^chkoqtvwwxyz??????zrjb????oOPQTVY\_cf???????????rqponkgc^ZUQNMMORV[_eimprtvw?x yz??????~wnf^??? 36???????????????????????#P??`;840,C?^M5""#$$%'(*+\?????????c,++**)'&$#!!#$&()*+,-?. /B]QA?=:62.+O?^X@(""#$&'')*,-/e????????l,,?+*)(&%$"?! "$%'(*++,,?. /B^QB?>;840,-X?^K4""#$%&')*+,./12s????????r?,?+*)((&%?$%&()*+?, A@?=;962/,*?()*+,-/12457889:;;<==<=:852.-?+,-/01346789::;<?= W?????????????????????a?-?./B\QC?B?A MCCBDkm???yveG?C BI ????????????? ?|B ??kq??repklmnopqqrst????????~efK^`M?e^Z??????- ??mr??bMfklmnopqqrstuv????????x?e fK_aMgee[_?????7 ??nr?kNNfklmnopqqrstuvv~????????x?e K^`KYedUm?????Z??r[gdOMfklmnopqqrstuvvwx????????u?e fM[cLLe_]?????5??NMgbWRfklmnopqqrstuvvwxyz????????u?e fPXeUQeYo???? ?Q>_USgb]Wgklmnopqqrstuvvwxyzz{????????r?e fPXeXTeVr????"?V5`YVgb\Wgklmnopqqrstuvvwxyzz{|?????????r?e PWe^[aU????#?q>[_]ga]Xgklmnopqqrstuvvwxyzz{|}~?????????p?efNYeb_Xs???&???iTddga\Xgklmnopqqrstuvvwxyzz{|}~??????????p?efL[ee`T????&?Udfga\Xgklmnopqqrstuvvwxyzz{|}~??????????p?eL[ee]T???(??X^fgaZVgklmnopqqrstuvvwxyzz{|}~??????????? N???{iz???umf????f?$Eknopqqrstuvvwxyzz{|}~????????????????? _??- 1gV? Z{|}~???????????h?T?U ? ?? ? ?  ??+aY? 0m}~???????????SS?T?US-?& .ZQ ? ?  ?  ?&]`"?Ez?????????u?S?T?U ? ? ? ?  /cK?$7?= ! ")<_N  +CcH /bO3;?=G??????b?T?U?V?W?X?YX.#9Y`/  7?= &RU?V?W?X?YI*"<.+?= N?V?W?X?Y N1 #=/3?=_?????? ??? E?V?W?XQ5 $=0!8?=C?????? ???" :?V?W?XU= $=1" (''5e???????????????????????/;K*M~??????????????????????E~????????????????????????????????????? ??????????????????????????????????????????????? ?? ? ? ? ???"u? ????????????? ??????cs ???? ?????????????? ??????:?? ??%?? #?? ? ,B[????? ??qVMB4% ? .D_??? ??]RH;.! ? ? ? ? ? ,BZ??? ??lVLA3& ? ? -C^??? ??kVL at 3% ? #9N??????? ??kUL at 2% ? ? --- NEW FILE: PythonApplet.psd --- 8BPS         ??   ???X? ???#? )???^?<??^??=f t??????C???:????%; 2%a?~?{s??%C7?Z%?b?+???&?sY????k????Z??'???V??7??]C???? ???H?]l  ? ?8BIMnorm? # $ ???????R #????????????? #?????????? ??????????????????????>& +=????k%'  ???????????????????? # $ #????????????? ????????O #????????????????? ????????& ???????; ???????:' +=????k$'  ?????????>E????E>??? ???????????????????????????o* # $ ???????A #?????? #???????? ????????????????????? ??????????& ???????:' +=????k%'  ?6 ?N ?o m??? ??.m???? 8???? !)28>CFFEA<5/& ? ? ? ? ? ? ? ? ? ? ????????????????????? 2,)????????????? 23,????????????? 210????????????? 211???????????? ??(43????C?R??7(??)434+?? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? ? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? fg?ff???????? ??????efeeff????? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? ??????R???5?301432?3 U?????????????????? ?????????}4?3433234?3 M???????????????? A???????????????? ?z????????a?3 8??????????????????? ?H?????????F?3 4q?????????????????? ?uh?????????W?3 23??????????????????????????????P?3???????????????????H???????????J?3 23????????????????????S????????f6?3=????????? ??(43????C?R??7(??)45????? ????????}??? ??O3:977557?6?8?9?8?9 ??????? ??? ?&E???????????? ?#?????????? ??????????????????????> ????l'>??????(??@*I??????0 w????ig???????????????????????????????????????????????????????????????????????????????????????????????????   ? J????n???????????? +????h ??J????b? !????b ????_ ?z ???????l&>??????(??@*I??????0 w????ig??????????????????????????????????????????????????????????????????????????????????????????????????? ??????f??}??????? f?H?i???????? ???????f?????????? ?zf???j?????? ?????i?????????????? ?H?e????????? ???????????????????? ?th??f????????? ????????w??????????? ??????f???????????????v????????????H?????e???????????????t?????????????S???f????????? ????????q??? ????????S???? ??????? ??? u?? ??? ??? ???????;*G?????{(=????/u?????(??????????- ??????2$??????*????? o+>????l'>??????(??@*I??????0 w????ig???????????????????? ?6 ?N ?o ? ? ? ? ? --- NEW FILE: PythonWSource.psd --- 8BPS         ??   Jf?I$?$?I)???T?I%5??3??6 ????H???? ??T????R{?? ???o?????????M??o????r?????m?8>??k?Jf?I$????T?I% ?????????k?6?5v?w?6? ??vx.???a%??w??~? -s\\???0? ?? ?#?5?? ?????????(????P?&E???t3?{QM5n.,????H?$?^?????? ????$?^?????$+?p?>A$?? ? ????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ??????????????????????????????????????? ?????????????? ???????????????????????????? ????????????????????????????????? ????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ??????????????????????????????????????? ?????????????? ????????????????????? ??????????????? ????????????????????????????????? ????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ??????????????????????????????????????? ?????????????? ????????????????????????? ?????????????? ????????????????????????????????? #:LPD0 $392%      $! $392% )HeoeH*#Ds???tC +V?????W(-]?????\*&O?????O$ 6^???_7 5JQJ4  $! ?6 ?N ?o m??? ??.m???? 8???? !)28>CFFEA<5/& ? ? ? ? ? ? ? ? ? ? ????????????????????? 2,)????????????? 23,????????????? 210????????????? 211???????????? ??(43????C?R??7(??)434+?? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? ? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? fg?ff???????? ??????efeeff????? GEAJILIKLKK?LMLLML?M?L?MLKKM?L?JI?: 3FHIFLJJIKLK?L?M?L?K JKKMKHJ<4/????? ??????????????????????????????????????????? ?????????????? ???????????????????????????????? ???????????????????????????????????????????????????????????????????? ????????????? ??????????5?301432?3 R???????????????????? ??????????5?3433234?3 K??????????????????????????? ??????????n?3 @??????????????? 4n????????????????????????????? 23????????????????????????????? ??(43????C?R??7(??)45?????? ??????????????????????????????????????????? ?????????????? ????????????????????????? ????????????? ???? ?????????????????????????q?????????????e ??????3, n??????v????????????????????????????? ???????d ?????? ??N????n? J???0??Aa????????????????????? ? ?F ??????????????????????????????????????????? ?????????????? ????????????????????????????? ??????????????????????? ????????????? f???j???????????????f??v??????????????????? ??????????????????????????????? ??????????????????? _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 14:51:30 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 14:51:30 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Objects boolobject.c, 1.1, NONE dictnotes.txt, 1.1, NONE enumobject.c, 1.1, NONE listsort.txt, 1.1, NONE setobject.c, 1.1, NONE Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Objects In directory centera.de:/home/tismer/slpdev/src/2.2/src/Objects Removed Files: boolobject.c dictnotes.txt enumobject.c listsort.txt setobject.c Log Message: deleting unwanted files which don't belong to the r223 tag (I used a bad -f flag in the sourceforge checkout) --- boolobject.c DELETED --- --- dictnotes.txt DELETED --- --- enumobject.c DELETED --- --- listsort.txt DELETED --- --- setobject.c DELETED --- _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 03:21:13 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 03:21:13 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Mac/OSX Makefile, 1.1.1.1, 1.2 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Mac/OSX In directory centera.de:/tmp/cvs-serv18709/src/Mac/OSX Modified Files: Makefile Log Message: initial patches from diffs (merge) plus a little Visual Studio Index: Makefile =================================================================== RCS file: /home/cvs/slpdev/src/2.2/src/Mac/OSX/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Makefile 9 May 2002 18:27:23 -0000 1.1.1.1 --- Makefile 1 May 2004 01:21:09 -0000 1.2 *************** *** 1,5 **** --- 1,34 ---- + <<<<<<< ../../2.2/src/./Mac/OSX/Makefile PYTHONBUILDDIR=../.. INSTALLDIR=/Library/Frameworks/Python.framework/Versions/Current APPINSTALLDIR=/Applications/Python.app + ======= + # This file can be invoked from the various frameworkinstall... targets in the + # main Makefile. The next couple of variables are overridden on the + # commandline in that case. + + VERSION=2.3 + builddir = ../.. + srcdir = ../.. + prefix=/Library/Frameworks/Stackless.framework/Versions/$(VERSION) + LIBDEST=$(prefix)/lib/python$(VERSION) + BUILDPYTHON=$(builddir)/python.exe + DESTDIR= + + # For 10.2: + #PBXBUILD=pbxbuild + # For 10.3: + PBXBUILD=xcodebuild + + # These are normally glimpsed from the previous set + bindir=/usr/local/bin + PYTHONAPPSPATH=/Applications/Stackless-$(VERSION) + PYTHONAPPSDIR=$(PYTHONAPPSPATH) + APPINSTALLDIR=$(prefix)/Resources/Stackless.app + + # Variables for installing the "normal" unix binaries + INSTALLED_PYTHON=$(prefix)/bin/stackless + INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/Stackless + >>>>>>> ././Mac/OSX/Makefile # Items more-or-less copied from the main Makefile *************** *** 8,11 **** --- 37,41 ---- INSTALL_PROGRAM=${INSTALL} INSTALL_SCRIPT= ${INSTALL_PROGRAM} + <<<<<<< ../../2.2/src/./Mac/OSX/Makefile INSTALL_DATA= ${INSTALL} -m 644 OPT=-g -O3 -Wall -Wstrict-prototypes -no-cpp-precomp -fno-common -dynamic *************** *** 39,42 **** --- 69,116 ---- echo "Creating directory $$i"; \ $(INSTALL) -d -m $(DIRMODE) $$i; \ + ======= + INSTALL_DATA= ${INSTALL} -m ${FILEMODE} + LN=ln + STRIPFLAG=-s + ##OPT=-g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp \ + ## -fno-common -dynamic + ##INCLUDES=-I$(builddir) -I$(srcdir)/Include -I$(srcdir)/Mac/Include + ##DEFINES= + ## + ##CFLAGS=$(OPT) $(DEFINES) $(INCLUDES) + ##LDFLAGS=-F$(builddir) -framework System -framework Stackless -framework Carbon \ + ## -framework Foundation + ##CC=cc + ##LD=cc + CPMAC=/Developer/Tools/CpMac + + APPTEMPLATE=$(srcdir)/Mac/OSXResources/app + APPSUBDIRS=MacOS Resources Resources/English.lproj \ + Resources/English.lproj/Documentation \ + Resources/English.lproj/Documentation/doc \ + Resources/English.lproj/Documentation/ide + DOCDIR=$(srcdir)/Mac/OSXResources/app/Resources/English.lproj/Documentation + DOCINDEX=$(DOCDIR)/"Documentation idx" + CACHERSRC=$(srcdir)/Mac/scripts/cachersrc.py + compileall=$(srcdir)/Lib/compileall.py + bundlebuilder=$(srcdir)/Lib/plat-mac/bundlebuilder.py + + installapps: install_PythonLauncher install_Python install_BuildApplet install_IDE \ + install_IDLE install_PackageManager + + install_PythonLauncher: + cd $(srcdir)/Mac/OSX/PythonLauncher/PythonLauncher.pbproj ; \ + $(PBXBUILD) -target PythonLauncher -buildstyle Deployment install \ + DSTROOT=$(DESTDIR)/ INSTALL_PATH=$(PYTHONAPPSPATH) + + install_Python: + @if test ! -f $(DOCINDEX); then \ + echo WARNING: you should run Apple Help Indexing Tool on $(DOCDIR); \ + fi + @for i in $(PYTHONAPPSDIR) $(APPINSTALLDIR) $(APPINSTALLDIR)/Contents; do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $(DESTDIR)$$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + >>>>>>> ././Mac/OSX/Makefile fi;\ done *************** *** 72,75 **** --- 146,150 ---- done; \ done + <<<<<<< ../../2.2/src/./Mac/OSX/Makefile $(INSTALL_PROGRAM) pythonforbundle $(APPINSTALLDIR)/Contents/MacOS/python # Create a temporary version of the resources here *************** *** 89,92 **** --- 164,237 ---- TOOLSSRC=$(PYTHONBUILDDIR)/Mac/Tools TOOLSSUBDIRS=IDE + ======= + $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) $(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Stackless + + install_IDE: + @if ! $(BUILDPYTHON) -c "import waste"; then \ + echo PythonIDE needs the \"waste\" extension module; \ + echo See Mac/OSX/README for details; \ + else \ + echo $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ + --python $(INSTALLED_PYTHONW) \ + --output $(DESTDIR)$(PYTHONAPPSDIR)/PythonIDE.app --noargv \ + $(srcdir)/Mac/Tools/IDE/PythonIDE.py ; \ + $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ + --python $(INSTALLED_PYTHONW) \ + --output $(DESTDIR)$(PYTHONAPPSDIR)/PythonIDE.app --noargv \ + $(srcdir)/Mac/Tools/IDE/PythonIDE.py; \ + fi + + install_PackageManager: + @if ! $(BUILDPYTHON) -c "import waste"; then \ + echo PackageManager needs the \"waste\" extension module; \ + echo See Mac/OSX/README for details; \ + else \ + echo $(BUILDPYTHON) $(bundlebuilder) \ + --builddir $(DESTDIR)$(PYTHONAPPSDIR)/ \ + --python $(INSTALLED_PYTHONW) \ + --resource $(srcdir)/Mac/Tools/IDE/PythonIDE.rsrc \ + --mainprogram $(srcdir)/Mac/Tools/IDE/PackageManager.py \ + --iconfile $(srcdir)/Mac/Tools/IDE/PackageManager.icns \ + --plist $(srcdir)/Mac/Tools/IDE/PackageManager.plist \ + --creator Pimp build; \ + $(BUILDPYTHON) $(bundlebuilder) \ + --builddir $(DESTDIR)$(PYTHONAPPSDIR)/ \ + --python $(INSTALLED_PYTHONW) \ + --resource $(srcdir)/Mac/Tools/IDE/PythonIDE.rsrc \ + --mainprogram $(srcdir)/Mac/Tools/IDE/PackageManager.py \ + --iconfile $(srcdir)/Mac/Tools/IDE/PackageManager.icns \ + --plist $(srcdir)/Mac/Tools/IDE/PackageManager.plist \ + --creator Pimp build; \ + fi + + install_IDLE: + @if ! $(BUILDPYTHON) -c "import _tkinter"; then \ + echo IDLE needs the \"Tkinter\" extension module; \ + echo See Mac/OSX/README for details; \ + else \ + echo $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ + --python $(INSTALLED_PYTHONW) \ + --output $(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app \ + --extra $(srcdir)/Lib/idlelib \ + $(srcdir)/Lib/idlelib/idle ; \ + $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ + --python $(INSTALLED_PYTHONW) \ + --output $(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app \ + --extra $(srcdir)/Lib/idlelib:Contents/Resources/idlelib \ + $(srcdir)/Lib/idlelib/idle ; \ + fi + + + install_BuildApplet: + $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ + --python $(INSTALLED_PYTHONW) \ + --output $(DESTDIR)$(PYTHONAPPSDIR)/BuildApplet.app \ + $(srcdir)/Mac/scripts/BuildApplet.py + + MACLIBDEST=$(LIBDEST)/plat-mac + MACTOOLSDEST=$(prefix)/Mac/Tools + MACTOOLSSRC=$(srcdir)/Mac/Tools + MACTOOLSSUBDIRS=IDE + >>>>>>> ././Mac/OSX/Makefile installmacsubtree: @for i in $(LIBDEST) $(TOOLSDEST); \ *************** *** 179,183 **** --- 324,361 ---- done + <<<<<<< ../../2.2/src/./Mac/OSX/Makefile @echo '** Copy the contents of sample_sitecustomize.py (or similar code) into' @echo '**' $(INSTALLDIR)/lib/python2.2/sitecustomize.py + ======= + + $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST) + $(BUILDPYTHON) -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) + $(BUILDPYTHON) -O -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) + + # + # We use the full name here in stead of $(INSTALLED_PYTHONW), because + # the latter may be overridden by Makefile.jaguar when building for a pre-installed + # /usr/bin/python + $(APPINSTALLDIR)/Contents/MacOS/Stackless: install_Python + + # $(INSTALLED_PYTHON) has to be done by the main Makefile, we cannot do that here. + # At least this rule will give an error if it doesn't exist. + + installunixtools: + $(INSTALL) -d $(DESTDIR)$(bindir) + $(INSTALL_SYMLINK) $(INSTALLED_PYTHON) $(DESTDIR)$(bindir)/python$(VERSION) + $(INSTALL_SYMLINK) python$(VERSION) $(DESTDIR)$(bindir)/python + echo "#!/bin/sh" > pythonw.sh + echo "exec \"$(INSTALLED_PYTHONW)\" \"\$$@\"" >> pythonw.sh + $(INSTALL) pythonw.sh $(DESTDIR)$(bindir)/pythonw$(VERSION) + $(INSTALL_SYMLINK) pythonw$(VERSION) $(DESTDIR)$(bindir)/pythonw + + installextras: + $(INSTALL) -d $(DESTDIR)$(PYTHONAPPSDIR)/Extras + $(INSTALL) $(srcdir)/Mac/OSX/Extras.ReadMe.txt $(DESTDIR)$(PYTHONAPPSDIR)/Extras/ReadMe + $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Demo \ + $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo + $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Tools \ + $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Tools + >>>>>>> ././Mac/OSX/Makefile _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:54:46 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:54:46 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/PC/bdist_wininst .cvsignore, NONE, 1.1 PythonPowered.bmp, NONE, 1.1 README.txt, NONE, 1.1 archive.h, NONE, 1.1 extract.c, NONE, 1.1 install.c, NONE, 1.1 install.rc, NONE, 1.1 resource.h, NONE, 1.1 wininst-7.1.sln, NONE, 1.1 wininst-7.1.vcproj, NONE, 1.1 wininst.dsp, NONE, 1.1 wininst.dsw, NONE, 1.1 Message-ID: Update of /home/cvs/slpdev/src/2.2/src/PC/bdist_wininst In directory centera.de:/home/tismer/slpdev/src/2.2/src/PC/bdist_wininst Added Files: .cvsignore PythonPowered.bmp README.txt archive.h extract.c install.c install.rc resource.h wininst-7.1.sln wininst-7.1.vcproj wininst.dsp wininst.dsw Log Message: added files --- NEW FILE: .cvsignore --- temp-debug temp-release wininst.ncb wininst.plg --- NEW FILE: PythonPowered.bmp --- BM --- NEW FILE: README.txt --- XXX Write description XXX Dont't forget to mention upx XXX Add pointer to this file into PC/README.txt --- NEW FILE: archive.h --- #pragma pack(1) /* zip-archive headers * See: http://www.pkware.com/appnote.html */ struct eof_cdir { long tag; /* must be 0x06054b50 */ short disknum; short firstdisk; short nTotalCDirThis; short nTotalCDir; long nBytesCDir; long ofsCDir; short commentlen; }; struct cdir { long tag; /* must be 0x02014b50 */ short version_made; short version_extract; short gp_bitflag; short comp_method; short last_mod_file_time; short last_mod_file_date; long crc32; long comp_size; long uncomp_size; short fname_length; short extra_length; short comment_length; short disknum_start; short int_file_attr; long ext_file_attr; long ofs_local_header; }; struct fhdr { long tag; /* must be 0x04034b50 */ short version_needed; short flags; short method; short last_mod_file_time; short last_mod_file_date; long crc32; long comp_size; long uncomp_size; short fname_length; short extra_length; }; struct meta_data_hdr { int tag; int uncomp_size; int bitmap_size; }; #pragma pack() /* installation scheme */ typedef struct tagSCHEME { char *name; char *prefix; } SCHEME; typedef int (*NOTIFYPROC)(int code, LPSTR text, ...); extern BOOL extract_file(char *dst, char *src, int method, int comp_size, int uncomp_size, NOTIFYPROC notify); extern BOOL unzip_archive(SCHEME *scheme, char *dirname, char *data, DWORD size, NOTIFYPROC notify); extern char * map_new_file(DWORD flags, char *filename, char *pathname_part, int size, WORD wFatDate, WORD wFatTime, NOTIFYPROC callback); extern BOOL ensure_directory (char *pathname, char *new_part, NOTIFYPROC callback); /* codes for NOITIFYPROC */ #define DIR_CREATED 1 #define CAN_OVERWRITE 2 #define FILE_CREATED 3 #define ZLIB_ERROR 4 #define SYSTEM_ERROR 5 #define NUM_FILES 6 #define FILE_OVERWRITTEN 7 --- NEW FILE: extract.c --- #include #include "zlib.h" #include #include #include "archive.h" /* Convert unix-path to dos-path */ static void normpath(char *path) { while (path && *path) { if (*path == '/') *path = '\\'; ++path; } } BOOL ensure_directory(char *pathname, char *new_part, NOTIFYPROC notify) { while (new_part && *new_part && (new_part = strchr(new_part, '\\'))) { DWORD attr; *new_part = '\0'; attr = GetFileAttributes(pathname); if (attr == -1) { /* nothing found */ if (!CreateDirectory(pathname, NULL) && notify) notify(SYSTEM_ERROR, "CreateDirectory (%s)", pathname); else notify(DIR_CREATED, pathname); } if (attr & FILE_ATTRIBUTE_DIRECTORY) { ; } else { SetLastError(183); if (notify) notify(SYSTEM_ERROR, "CreateDirectory (%s)", pathname); } *new_part = '\\'; ++new_part; } return TRUE; } /* XXX Should better explicitely specify * uncomp_size and file_times instead of pfhdr! */ char *map_new_file(DWORD flags, char *filename, char *pathname_part, int size, WORD wFatDate, WORD wFatTime, NOTIFYPROC notify) { HANDLE hFile, hFileMapping; char *dst; FILETIME ft; try_again: if (!flags) flags = CREATE_NEW; hFile = CreateFile(filename, GENERIC_WRITE | GENERIC_READ, 0, NULL, flags, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { DWORD x = GetLastError(); switch (x) { case ERROR_FILE_EXISTS: if (notify && notify(CAN_OVERWRITE, filename)) hFile = CreateFile(filename, GENERIC_WRITE|GENERIC_READ, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); else { if (notify) notify(FILE_OVERWRITTEN, filename); return NULL; } break; case ERROR_PATH_NOT_FOUND: if (ensure_directory(filename, pathname_part, notify)) goto try_again; else return FALSE; break; default: SetLastError(x); break; } } if (hFile == INVALID_HANDLE_VALUE) { if (notify) notify (SYSTEM_ERROR, "CreateFile (%s)", filename); return NULL; } if (notify) notify(FILE_CREATED, filename); DosDateTimeToFileTime(wFatDate, wFatTime, &ft); SetFileTime(hFile, &ft, &ft, &ft); if (size == 0) { /* We cannot map a zero-length file (Also it makes no sense */ CloseHandle(hFile); return NULL; } hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, size, NULL); CloseHandle(hFile); if (hFileMapping == INVALID_HANDLE_VALUE) { if (notify) notify(SYSTEM_ERROR, "CreateFileMapping (%s)", filename); return NULL; } dst = MapViewOfFile(hFileMapping, FILE_MAP_WRITE, 0, 0, 0); CloseHandle(hFileMapping); if (!dst) { if (notify) notify(SYSTEM_ERROR, "MapViewOfFile (%s)", filename); return NULL; } return dst; } BOOL extract_file(char *dst, char *src, int method, int comp_size, int uncomp_size, NOTIFYPROC notify) { z_stream zstream; int result; if (method == Z_DEFLATED) { int x; memset(&zstream, 0, sizeof(zstream)); zstream.next_in = src; zstream.avail_in = comp_size+1; zstream.next_out = dst; zstream.avail_out = uncomp_size; /* Apparently an undocumented feature of zlib: Set windowsize to negative values to supress the gzip header and be compatible with zip! */ result = TRUE; if (Z_OK != (x = inflateInit2(&zstream, -15))) { if (notify) notify(ZLIB_ERROR, "inflateInit2 returns %d", x); result = FALSE; goto cleanup; } if (Z_STREAM_END != (x = inflate(&zstream, Z_FINISH))) { if (notify) notify(ZLIB_ERROR, "inflate returns %d", x); result = FALSE; } cleanup: if (Z_OK != (x = inflateEnd(&zstream))) { if (notify) notify (ZLIB_ERROR, "inflateEnd returns %d", x); result = FALSE; } } else if (method == 0) { memcpy(dst, src, uncomp_size); result = TRUE; } else result = FALSE; UnmapViewOfFile(dst); return result; } /* Open a zip-compatible archive and extract all files * into the specified directory (which is assumed to exist) */ BOOL unzip_archive(SCHEME *scheme, char *dirname, char *data, DWORD size, NOTIFYPROC notify) { int n; char pathname[MAX_PATH]; char *new_part; /* read the end of central directory record */ struct eof_cdir *pe = (struct eof_cdir *)&data[size - sizeof (struct eof_cdir)]; int arc_start = size - sizeof (struct eof_cdir) - pe->nBytesCDir - pe->ofsCDir; /* set position to start of central directory */ int pos = arc_start + pe->ofsCDir; /* make sure this is a zip file */ if (pe->tag != 0x06054b50) return FALSE; /* Loop through the central directory, reading all entries */ for (n = 0; n < pe->nTotalCDir; ++n) { int i; char *fname; char *pcomp; char *dst; struct cdir *pcdir; struct fhdr *pfhdr; pcdir = (struct cdir *)&data[pos]; pfhdr = (struct fhdr *)&data[pcdir->ofs_local_header + arc_start]; if (pcdir->tag != 0x02014b50) return FALSE; if (pfhdr->tag != 0x04034b50) return FALSE; pos += sizeof(struct cdir); fname = (char *)&data[pos]; /* This is not null terminated! */ pos += pcdir->fname_length + pcdir->extra_length + pcdir->comment_length; pcomp = &data[pcdir->ofs_local_header + sizeof(struct fhdr) + arc_start + pfhdr->fname_length + pfhdr->extra_length]; /* dirname is the Python home directory (prefix) */ strcpy(pathname, dirname); if (pathname[strlen(pathname)-1] != '\\') strcat(pathname, "\\"); new_part = &pathname[lstrlen(pathname)]; /* we must now match the first part of the pathname * in the archive to a component in the installation * scheme (PURELIB, PLATLIB, HEADERS, SCRIPTS, or DATA) * and replace this part by the one in the scheme to use */ for (i = 0; scheme[i].name; ++i) { if (0 == strnicmp(scheme[i].name, fname, strlen(scheme[i].name))) { char *rest; int len; /* length of the replaced part */ int namelen = strlen(scheme[i].name); strcat(pathname, scheme[i].prefix); rest = fname + namelen; len = pfhdr->fname_length - namelen; if ((pathname[strlen(pathname)-1] != '\\') && (pathname[strlen(pathname)-1] != '/')) strcat(pathname, "\\"); /* Now that pathname ends with a separator, * we must make sure rest does not start with * an additional one. */ if ((rest[0] == '\\') || (rest[0] == '/')) { ++rest; --len; } strncat(pathname, rest, len); goto Done; } } /* no prefix to replace found, go unchanged */ strncat(pathname, fname, pfhdr->fname_length); Done: normpath(pathname); if (pathname[strlen(pathname)-1] != '\\') { /* * The local file header (pfhdr) does not always * contain the compressed and uncompressed sizes of * the data depending on bit 3 of the flags field. So * it seems better to use the data from the central * directory (pcdir). */ dst = map_new_file(0, pathname, new_part, pcdir->uncomp_size, pcdir->last_mod_file_date, pcdir->last_mod_file_time, notify); if (dst) { if (!extract_file(dst, pcomp, pfhdr->method, pcdir->comp_size, pcdir->uncomp_size, notify)) return FALSE; } /* else ??? */ } if (notify) notify(NUM_FILES, new_part, (int)pe->nTotalCDir, (int)n+1); } return TRUE; } --- NEW FILE: install.c --- /* * Written by Thomas Heller, May 2000 * * $Id: install.c,v 1.1 2004/05/01 00:54:43 tismer Exp $ */ /* * Windows Installer program for distutils. * * (a kind of self-extracting zip-file) * * At runtime, the exefile has appended: * - compressed setup-data in ini-format, containing the following sections: * [metadata] * author=Greg Ward * author_email=gward at python.net * description=Python Distribution Utilities * licence=Python * name=Distutils [...2383 lines suppressed...] if (ExtractInstallData(arc_data, arc_size, &exe_size, &ini_file, &pre_install_script)) return DoInstall(); if (!ini_file && __argc > 1) { return DoUninstall(__argc, __argv); } basename = strrchr(modulename, '\\'); if (basename) ++basename; /* Last guess about the purpose of this program */ if (basename && (0 == strncmp(basename, "Remove", 6))) SystemError(0, "This program is normally started by windows"); else SystemError(0, "Setup program invalid or damaged"); return 1; } --- NEW FILE: install.rc --- //Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Neutral resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) #ifdef _WIN32 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #pragma code_page(1252) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Bitmap // IDB_BITMAP BITMAP DISCARDABLE "PythonPowered.bmp" #endif // Neutral resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // German (Germany) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #ifdef _WIN32 LANGUAGE LANG_GERMAN, SUBLANG_GERMAN #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // German (Germany) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Dialog // IDD_INTRO DIALOGEX 0, 0, 379, 178 STYLE WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Setup" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN LTEXT "This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.", IDC_TITLE,125,10,247,20,NOT WS_GROUP EDITTEXT IDC_INTRO_TEXT,125,31,247,131,ES_MULTILINE | ES_READONLY | WS_VSCROLL | WS_HSCROLL | NOT WS_TABSTOP CONTROL 110,IDC_BITMAP,"Static",SS_BITMAP | SS_CENTERIMAGE,6,8, 104,163,WS_EX_CLIENTEDGE LTEXT "",IDC_BUILD_INFO,125,163,247,8 END IDD_SELECTPYTHON DIALOGEX 0, 0, 379, 178 STYLE WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Setup" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN LTEXT "Select python installation to use:",IDC_TITLE,125,10, 247,12,NOT WS_GROUP EDITTEXT IDC_PATH,191,136,181,14,ES_AUTOHSCROLL | ES_READONLY LTEXT "Python Directory:",IDC_STATIC,125,137,55,8 LISTBOX IDC_VERSIONS_LIST,125,24,247,106,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP CONTROL 110,IDC_BITMAP,"Static",SS_BITMAP | SS_CENTERIMAGE,6,8, 104,163,WS_EX_CLIENTEDGE EDITTEXT IDC_INSTALL_PATH,191,157,181,14,ES_AUTOHSCROLL | ES_READONLY LTEXT "Installation Directory:",IDC_STATIC,125,158,66,8 PUSHBUTTON "Find other ...",IDC_OTHERPYTHON,322,7,50,14,NOT WS_VISIBLE END IDD_INSTALLFILES DIALOGEX 0, 0, 379, 178 STYLE WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Setup" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN LTEXT "Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.", IDC_TITLE,125,10,246,31,NOT WS_GROUP CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER, 125,157,246,14 CTEXT "Installation progress:",IDC_INFO,125,137,246,8 CONTROL 110,IDC_BITMAP,"Static",SS_BITMAP | SS_CENTERIMAGE,6,8, 104,163,WS_EX_CLIENTEDGE END IDD_FINISHED DIALOGEX 0, 0, 379, 178 STYLE WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Setup" FONT 8, "MS Sans Serif" BEGIN LTEXT "Click the Finish button to exit the Setup wizard.", IDC_TITLE,125,10,247,31,NOT WS_GROUP CONTROL 110,IDC_BITMAP,"Static",SS_BITMAP | SS_CENTERIMAGE,6,8, 104,163,WS_EX_CLIENTEDGE EDITTEXT IDC_INFO,125,40,247,131,ES_MULTILINE | ES_READONLY | WS_VSCROLL | WS_HSCROLL | NOT WS_TABSTOP END ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO DISCARDABLE BEGIN IDD_INTRO, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 372 VERTGUIDE, 125 VERTGUIDE, 372 TOPMARGIN, 7 BOTTOMMARGIN, 171 HORZGUIDE, 8 HORZGUIDE, 31 END IDD_SELECTPYTHON, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 372 VERTGUIDE, 125 VERTGUIDE, 372 TOPMARGIN, 7 BOTTOMMARGIN, 171 HORZGUIDE, 8 HORZGUIDE, 41 END IDD_INSTALLFILES, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 372 VERTGUIDE, 125 VERTGUIDE, 371 TOPMARGIN, 7 BOTTOMMARGIN, 171 HORZGUIDE, 8 HORZGUIDE, 41 END IDD_FINISHED, DIALOG BEGIN LEFTMARGIN, 6 RIGHTMARGIN, 372 VERTGUIDE, 125 VERTGUIDE, 372 TOPMARGIN, 7 BOTTOMMARGIN, 171 HORZGUIDE, 8 HORZGUIDE, 41 END END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED --- NEW FILE: resource.h --- //{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by install.rc // #define IDD_DIALOG1 101 #define IDB_BITMAP1 103 #define IDD_INTRO 107 #define IDD_SELECTPYTHON 108 #define IDD_INSTALLFILES 109 #define IDD_FINISHED 110 #define IDB_BITMAP 110 #define IDC_EDIT1 1000 #define IDC_TITLE 1000 #define IDC_START 1001 #define IDC_PROGRESS 1003 #define IDC_INFO 1004 #define IDC_PYTHON15 1006 #define IDC_PATH 1007 #define IDC_PYTHON16 1008 #define IDC_INSTALL_PATH 1008 #define IDC_PYTHON20 1009 #define IDC_BROWSE 1010 #define IDC_INTRO_TEXT 1021 #define IDC_VERSIONS_LIST 1022 #define IDC_BUILD_INFO 1024 #define IDC_BITMAP 1025 #define IDC_OTHERPYTHON 1026 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 112 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1028 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif --- NEW FILE: wininst-7.1.sln --- Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wininst", "wininst-7.1.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug.ActiveCfg = Debug|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug.Build.0 = Debug|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release.ActiveCfg = Release|Win32 {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal --- NEW FILE: wininst-7.1.vcproj --- --- NEW FILE: wininst.dsp --- # Microsoft Developer Studio Project File - Name="wininst" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Application" 0x0101 CFG=wininst - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "wininst.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "wininst.mak" CFG="wininst - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "wininst - Win32 Release" (based on "Win32 (x86) Application") !MESSAGE "wininst - Win32 Debug" (based on "Win32 (x86) Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "wininst - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "..\..\lib\distutils\command" # PROP Intermediate_Dir "temp-release" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MD /W3 /O1 /I "..\..\Include" /I "..\..\..\zlib-1.2.1" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "NDEBUG" # ADD RSC /l 0x407 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 # ADD LINK32 ..\..\..\zlib-1.2.1\zlib.lib imagehlp.lib comdlg32.lib ole32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"LIBC" /out:"..\..\lib\distutils\command/wininst-6.exe" # Begin Special Build Tool TargetPath=\sf\python\dist\src\lib\distutils\command\wininst-6.exe SOURCE="$(InputPath)" PostBuild_Cmds=upx.exe --best $(TARGETPATH) || echo "wininst.exe not compressed" # End Special Build Tool !ELSEIF "$(CFG)" == "wininst - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "." # PROP Intermediate_Dir "temp-debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MD /W3 /Z7 /Od /I "..\..\Include" /I "..\..\..\zlib-1.1.4" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x407 /d "_DEBUG" # ADD RSC /l 0x407 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept # ADD LINK32 ..\..\..\zlib-1.1.4\zlib.lib imagehlp.lib comdlg32.lib ole32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:windows /pdb:none /debug /machine:I386 /nodefaultlib:"LIBC" /out:"..\..\lib\distutils\command/wininst-6_d.exe" !ENDIF # Begin Target # Name "wininst - Win32 Release" # Name "wininst - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=.\extract.c # End Source File # Begin Source File SOURCE=.\install.c # End Source File # Begin Source File SOURCE=.\install.rc # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=.\archive.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # Begin Source File SOURCE=.\PythonPowered.bmp # End Source File # End Group # End Target # End Project --- NEW FILE: wininst.dsw --- Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! ############################################################################### Project: "wininst"=.\wininst.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### _______________________________________________ Stackless-checkins mailing list Stackless-checkins at stackless.com http://www.stackless.com/mailman/listinfo/stackless-checkins From tismer at centera.de Sat May 1 02:49:47 2004 From: tismer at centera.de (Christian Tismer) Date: Sat, 01 May 2004 02:49:47 +0200 Subject: [Stackless-checkins] CVS: slpdev/src/2.2/src/Lib/idlelib - New directory Message-ID: Update of /home/cvs/slpdev/src/2.2/src/Lib/idlelib In directory centera.de:/home/tismer/slpdev/src/2.2/src/Lib/idlelib Log Message: Directory /home/cvs/slpdev/src/2.2/src/Lib/idlelib added to the repository _______________________________________________ Stackless-chec