remove old Pyrex code for calling a C compiler to build extension modules
authorLisandro Dalcin <dalcinl@gmail.com>
Thu, 17 Dec 2009 23:48:31 +0000 (20:48 -0300)
committerLisandro Dalcin <dalcinl@gmail.com>
Thu, 17 Dec 2009 23:48:31 +0000 (20:48 -0300)
12 files changed:
Cython/Compiler/CmdLine.py
Cython/Compiler/Main.py
Cython/Mac/DarwinSystem.py [deleted file]
Cython/Mac/MacSystem.py [deleted file]
Cython/Mac/MacUtils.py [deleted file]
Cython/Mac/Makefile [deleted file]
Cython/Mac/TS_Misc_Suite.py [deleted file]
Cython/Mac/_Filemodule_patched.c [deleted file]
Cython/Mac/__init__.py [deleted file]
Cython/Unix/LinuxSystem.py [deleted file]
Cython/Unix/__init__.py [deleted file]
setup.py

index 92e66e8c2056d2c232554f540efe04528e432a0f..633d2b7e0aeb3e2f8458b8898d85eac3e1c50648 100644 (file)
@@ -80,11 +80,6 @@ def parse_command_line(args):
                 options.show_version = 1
             elif option in ("-l", "--create-listing"):
                 options.use_listing_file = 1
-            elif option in ("-C", "--compile"):
-                options.c_only = 0
-            elif option in ("--link"):
-                options.c_only = 0
-                options.obj_only = 0
             elif option in ("-+", "--cplus"):
                 options.cplus = 1
             elif option == "--embed":
@@ -135,14 +130,9 @@ def parse_command_line(args):
             elif arg.endswith(".py"):
                 # maybe do some other stuff, but this should work for now
                 sources.append(arg)
-            elif arg.endswith(".o"):
-                options.objects.append(arg)
             else:
                 sys.stderr.write(
                     "cython: %s: Unknown filename suffix\n" % arg)
-    if options.objects and len(sources) > 1:
-        sys.stderr.write(
-            "cython: Only one source file allowed together with .o files\n")
     if options.use_listing_file and len(sources) > 1:
         sys.stderr.write(
             "cython: Only one source file allowed when using -o\n")
index e869e9816ecf90489ca5da23a82aa96a8591512a..04f4bc2cbc7ee1aed7fd503d2b941ba32999c2a7 100644 (file)
@@ -509,15 +509,6 @@ class Context(object):
             except EnvironmentError:
                 pass
             result.c_file = None
-        if result.c_file and not options.c_only and c_compile:
-            result.object_file = c_compile(result.c_file,
-                verbose_flag = options.show_version,
-                cplus = options.cplus)
-            if not options.obj_only and c_link:
-                result.extension_file = c_link(result.object_file,
-                    extra_objects = options.objects,
-                    verbose_flag = options.show_version,
-                    cplus = options.cplus)
 
 def create_parse(context):
     def parse(compsrc):
@@ -605,17 +596,11 @@ class CompilationOptions(object):
     compiler_directives  dict      Overrides for pragma options (see Options.py)
     evaluate_tree_assertions boolean  Test support: evaluate parse tree assertions
     
-    Following options are experimental and only used on MacOSX:
-    
-    c_only            boolean   Stop after generating C file (default)
-    obj_only          boolean   Stop after compiling to .o file
-    objects           [string]  Extra .o files to link with
     cplus             boolean   Compile as c++ code
     """
     
-    def __init__(self, defaults = None, c_compile = 0, c_link = 0, **kw):
+    def __init__(self, defaults = None, **kw):
         self.include_path = []
-        self.objects = []
         if defaults:
             if isinstance(defaults, CompilationOptions):
                 defaults = defaults.__dict__
@@ -623,10 +608,6 @@ class CompilationOptions(object):
             defaults = default_options
         self.__dict__.update(defaults)
         self.__dict__.update(kw)
-        if c_compile:
-            self.c_only = 0
-        if c_link:
-            self.obj_only = 0
 
 
 class CompilationResult(object):
@@ -719,8 +700,7 @@ def compile_multiple(sources, options):
                             "Cannot find .pyx file for cimported module '%s'\n" % module_name)
     return results
 
-def compile(source, options = None, c_compile = 0, c_link = 0,
-            full_module_name = None, **kwds):
+def compile(source, options = None, full_module_name = None, **kwds):
     """
     compile(source [, options], [, <option> = <value>]...)
     
@@ -730,8 +710,7 @@ def compile(source, options = None, c_compile = 0, c_link = 0,
     checking is requested, a CompilationResult is returned, otherwise a
     CompilationResultSet is returned.
     """
-    options = CompilationOptions(defaults = options, c_compile = c_compile,
-        c_link = c_link, **kwds)
+    options = CompilationOptions(defaults = options, **kwds)
     if isinstance(source, basestring) and not options.timestamps \
             and not options.recursive:
         return compile_single(source, options, full_module_name)
@@ -782,8 +761,6 @@ default_options = dict(
     show_version = 0,
     use_listing_file = 0,
     errors_to_stderr = 1,
-    c_only = 1,
-    obj_only = 1,
     cplus = 0,
     output_file = None,
     annotate = False,
@@ -797,13 +774,3 @@ default_options = dict(
     evaluate_tree_assertions = False,
     emit_linenums = False,
 )
-if sys.platform == "mac":
-    from Cython.Mac.MacSystem import c_compile, c_link, CCompilerError
-    default_options['use_listing_file'] = 1
-elif sys.platform == "darwin":
-    from Cython.Mac.DarwinSystem import c_compile, c_link, CCompilerError
-else:
-    c_compile = None
-    c_link = None
-
-
diff --git a/Cython/Mac/DarwinSystem.py b/Cython/Mac/DarwinSystem.py
deleted file mode 100644 (file)
index 8e2c63a..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#
-#   Pyrex - Darwin system interface
-#
-
-verbose = 0
-gcc_pendantic = True
-gcc_warnings_are_errors = True
-gcc_all_warnings = True
-gcc_optimize = False
-
-import os, sys
-from Cython.Utils import replace_suffix
-from Cython.Compiler.Errors import PyrexError
-
-version_string = "%s.%s" % sys.version_info[:2]
-
-py_include_dirs = [
-    "/Library/Frameworks/Python.framework/Versions/%s/Headers" % version_string
-]
-
-osx_version = os.popen('sw_vers | grep ProductVersion').read().split()[1]
-# MACOSX_DEPLOYMENT_TARGET can be set to 10.3 in most cases.
-# But for the built-in Python 2.5.1 on Leopard, it needs to be set for 10.5.
-# This looks like a bug that will be fixed in 2.5.2.  If Apple updates their
-# Python to 2.5.2, this fix should be OK.
-import distutils.sysconfig as sc
-python_prefix = sc.get_config_var('prefix')
-leopard_python_prefix = '/System/Library/Frameworks/Python.framework/Versions/2.5'
-full_version = "%s.%s.%s" % sys.version_info[:3]
-if python_prefix == leopard_python_prefix and full_version == '2.5.1':
-    os.environ["MACOSX_DEPLOYMENT_TARGET"] = "10.5"
-elif osx_version >= "10.6":
-    os.environ["MACOSX_DEPLOYMENT_TARGET"] = "10.4"
-else:
-    os.environ["MACOSX_DEPLOYMENT_TARGET"] = "10.3"
-
-compilers = ["gcc", "g++"]
-compiler_options = \
-    "-g -c -fno-strict-aliasing -no-cpp-precomp " \
-    "-mno-fused-madd -fno-common -dynamic " \
-    .split()
-if gcc_pendantic:
-    compiler_options.extend(["-pedantic", "-Wno-long-long"])
-if gcc_warnings_are_errors:
-    compiler_options.append("-Werror")
-if gcc_all_warnings:
-    compiler_options.append("-Wall")
-    compiler_options.append("-Wno-unused-function")
-if gcc_optimize:
-    compiler_options.append("-O")
-
-linkers = ["gcc", "g++"]
-linker_options = \
-    "-Wl,-F.,-w -bundle -undefined dynamic_lookup" \
-    .split()
-#linker_options = \
-#    "-Wl,-F.,-w -bundle -framework Python" \
-#    .split()
-
-class CCompilerError(PyrexError):
-    pass
-
-def c_compile(c_file, verbose_flag = 0, cplus = 0, obj_suffix = ".o"):
-    #  Compile the given C source file to produce
-    #  an object file. Returns the pathname of the
-    #  resulting file.
-    c_file = os.path.join(os.getcwd(), c_file)
-    o_file = replace_suffix(c_file, obj_suffix)
-    include_options = []
-    for dir in py_include_dirs:
-        include_options.append("-I%s" % dir)
-    compiler = compilers[bool(cplus)]
-    args = [compiler] + compiler_options + include_options + [c_file, "-o", o_file]
-    if verbose_flag or verbose:
-        print(" ".join(args))
-    #print compiler, args ###
-    status = os.spawnvp(os.P_WAIT, compiler, args)
-    if status != 0:
-        raise CCompilerError("C compiler returned status %s" % status)
-    return o_file
-
-def c_link(obj_file, verbose_flag = 0, extra_objects = [], cplus = 0):
-    return c_link_list([obj_file] + extra_objects, verbose_flag, cplus)
-
-def c_link_list(obj_files, verbose_flag = 0, cplus = 0):
-    #  Link the given object files into a dynamically
-    #  loadable extension file. Returns the pathname
-    #  of the resulting file.
-    out_file = replace_suffix(obj_files[0], ".so")
-    linker = linkers[bool(cplus)]
-    args = [linker] + linker_options + obj_files + ["-o", out_file]
-    if verbose_flag or verbose:
-        print(" ".join(args))
-    status = os.spawnvp(os.P_WAIT, linker, args)
-    if status != 0:
-        raise CCompilerError("Linker returned status %s" % status)
-    return out_file
diff --git a/Cython/Mac/MacSystem.py b/Cython/Mac/MacSystem.py
deleted file mode 100644 (file)
index dccc653..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#
-#   Pyrex -- Mac system interface
-#
-
-import os, sys
-import aetools
-from aetools import TalkTo
-from StdSuites.Standard_Suite import Standard_Suite_Events as Standard_Suite
-from Cython.Utils import replace_suffix
-from Cython.Compiler.Errors import PyrexError
-
-c_compiler = "MWCPPC"
-c_optimizations = "off"
-#c_linker = "PPCLink"
-c_linker = "MWLinkPPC"
-shared_lib_suffix = ".slb"
-
-#py_home = "Python2.2:Home:"
-py_home = sys.exec_prefix
-
-py_include_dirs = (
-    py_home + "Include:",
-    py_home + "Mac:Include:"
-)
-
-pythoncore = py_home + "PythonCore"
-
-mwlibdir = "MPW:Interfaces&Libraries:Libraries:MWPPCLibraries:"
-
-libraries = (
-    #mwlibdir + "'MSL C.PPC.Lib'",
-    #mwlibdir + "'MSL RuntimePPC.Lib'",
-    mwlibdir + "'MSL ShLibRuntime.Lib'",
-    mwlibdir + "InterfaceLib",
-    #mwlibdir + "MathLib",
-    )
-
-class CCompilerError(PyrexError):
-    pass
-
-#---------------- ToolServer ---------------------------
-
-from TS_Misc_Suite import TS_Misc_Suite
-
-class ToolServer(Standard_Suite, TS_Misc_Suite, TalkTo):
-    pass
-
-def send_toolserver_command(cmd):
-    ts = ToolServer('MPSX', start = 1)
-    return ts.DoScript(cmd)
-
-def do_toolserver_command(command):
-    try:
-        result = send_toolserver_command(command)
-    except aetools.Error, e:
-        raise CCompilerError("Apple Event error: %s" % e)
-    errn, stat, stdout, stderr = result
-    if errn:
-        raise CCompilerError("ToolServer error: %s" % errn)
-    stdout = stdout.replace("\r", "\n")
-    stderr = stderr.replace("\r", "\n")
-    if stdout:
-        #print "<<< Begin ToolServer StdOut >>>"
-        sys.stderr.write(stdout)
-        #print "<<< End ToolServer StdOut >>>"
-    if stderr:
-        #print "<<< Begin ToolServer StdErr >>>"
-        sys.stderr.write(stderr)
-        #print "<<< End ToolServer StdErr >>>"
-    return stat
-
-#-------------------------------------------------------
-
-def c_compile(c_file):
-    #  Compile the given C source file to produce
-    #  an object file. Returns the pathname of the
-    #  resulting file.
-    c_file = os.path.join(os.getcwd(), c_file)
-    #print "c_compile: c_file =", repr(c_file) ###
-    c_file_dir = os.path.dirname(c_file)
-    o_file = replace_suffix(c_file, ".o")
-    include_options = ["-i %s" % c_file_dir]
-    for dir in py_include_dirs:
-        include_options.append("-i %s" % dir)
-    command = "%s -opt %s -nomapcr -w off -r %s %s -o %s" % (
-        c_compiler, 
-        c_optimizations,
-        ' '.join(include_options),
-        c_file, 
-        o_file, 
-        #e_file
-        )
-    #print "...command =", repr(command) ###
-    stat = do_toolserver_command(command)
-    if stat:
-        raise CCompilerError("C compiler returned status %s" % stat)
-    return o_file
-
-def c_link(obj_file):
-    return c_link_list([obj_file])
-
-def c_link_list(obj_files):
-    #  Link the given object files into a dynamically
-    #  loadable extension file. Returns the pathname
-    #  of the resulting file.
-    out_file = replace_suffix(obj_files[0], shared_lib_suffix)
-    command = "%s -xm s -export all %s %s %s -o %s" % (
-        c_linker, 
-        ' '.join(obj_files), 
-        pythoncore,
-        ' '.join(libraries),
-        out_file)
-    stat = do_toolserver_command(command)
-    if stat:
-        raise CCompilerError("Linker returned status %s" % stat)
-    return out_file
-
-def test_c_compile(link = 0):
-    objs = []
-    for arg in sys.argv[1:]:
-        if arg.endswith(".c"):
-            try:
-                obj = c_compile(arg)
-            except PyrexError, e:
-                #print "Caught a PyrexError:" ###
-                #print repr(e) ###
-                print("%s.%s: %s" % (e.__class__.__module__,
-                    e.__class__.__name__, e))
-                sys.exit(1)
-        else:
-            obj = arg
-        objs.append(obj)
-    if link:
-        c_link_list(objs)
-
diff --git a/Cython/Mac/MacUtils.py b/Cython/Mac/MacUtils.py
deleted file mode 100644 (file)
index 91201f4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-#   Pyrex -- Misc Mac-specific things
-#
-
-import os, MacOS, macfs
-
-def open_new_file(path):
-    # On the Mac, try to preserve Finder position
-    # of previously existing file.
-    fsspec = macfs.FSSpec(path)
-    try:
-        old_finfo = fsspec.GetFInfo()
-    except MacOS.Error, e:
-        #print "MacUtils.open_new_file:", e ###
-        old_finfo = None
-    try:
-        os.unlink(path)
-    except OSError:
-        pass
-    file = open(path, "w")
-    new_finfo = fsspec.GetFInfo()
-    if old_finfo:
-        #print "MacUtils.open_new_file:", path ###
-        #print "...old file info =", old_finfo.Creator, old_finfo.Type, old_finfo.Location ###
-        #print "...new file info =", new_finfo.Creator, new_finfo.Type, new_finfo.Location ###
-        new_finfo.Location = old_finfo.Location
-        new_finfo.Flags = old_finfo.Flags
-    # Make darn sure the type and creator are right. There seems
-    # to be a bug in MacPython 2.2 that screws them up sometimes.
-    new_finfo.Creator = "R*ch"
-    new_finfo.Type = "TEXT"
-    fsspec.SetFInfo(new_finfo)
-    return file
-
diff --git a/Cython/Mac/Makefile b/Cython/Mac/Makefile
deleted file mode 100644 (file)
index 4e63e80..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# Makefile for Darwin
-
-# Change this to your Python source location
-PYTHON := /Local/Build/Pythonic/python/2.3
-
-INCLUDE := -I$(PYTHON) -I$(PYTHON)/Include -I$(PYTHON)/Mac/Include
-
-CCOPTS := -fno-strict-aliasing -no-cpp-precomp \
-       -mno-fused-madd -fno-common -dynamic
-
-LDOPTS := -Wl,-F.,-w -bundle -framework Python -framework Carbon
-
-all:   _File.so
-
-_File.o:       _Filemodule_patched.c
-       gcc -c $(INCLUDE) $(OPTS) $< -o $@
-
-_File.so:      _File.o
-       gcc $(LDOPTS) $< -o $@
diff --git a/Cython/Mac/TS_Misc_Suite.py b/Cython/Mac/TS_Misc_Suite.py
deleted file mode 100644 (file)
index f687994..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-"""Suite Misc Suite: Suite that adds additional features to the Application.
-Level 1, version 1
-
-Generated from Macintosh HD:Desktop Folder:ToolServer 3.4.1:ToolServer
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'misc'
-
-class TS_Misc_Suite(object):
-
-    def DoScript(self, _object, _attributes={}, **_arguments):
-        """DoScript: Execute an MPW command, any command that could be executed from the command line can be sent as a script.
-        Required argument: The script to execute
-        Keyword argument _attributes: AppleEvent attribute dictionary
-        """
-        _code = 'misc'
-        _subcode = 'dosc'
-
-        if _arguments: raise TypeError('No optional args expected')
-        _arguments['----'] = _object
-
-
-        _reply, _arguments, _attributes = self.send(_code, _subcode,
-                _arguments, _attributes)
-        #if _arguments.has_key('errn'):
-        #    raise aetools.Error, aetools.decodeerror(_arguments)
-        # XXXX Optionally decode result
-        #if _arguments.has_key('----'):
-        #    return _arguments['----']
-        errn = 0
-        stat = 0
-        stdout = ""
-        stderr = ""
-        if 'errn' in _arguments:
-            errn = _arguments['errn']
-            if errn:
-                errn = aetools.decodeerror(_arguments)
-        if 'stat' in _arguments:
-            stat = _arguments['stat']
-        if '----' in _arguments:
-            stdout = _arguments['----']
-        if 'diag' in _arguments:
-            stderr = _arguments['diag']
-        return (errn, stat, stdout, stderr)
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Cython/Mac/_Filemodule_patched.c b/Cython/Mac/_Filemodule_patched.c
deleted file mode 100644 (file)
index d5aaf2b..0000000
+++ /dev/null
@@ -1,3345 +0,0 @@
-/*
- *   This is a hacked version of _Filemodule.c from the Python 2.3
- *   distribution to support access to the finderInfo field of the
- *   FSCatalogInfo data structure.
- */
-
-/* ========================== Module _File ========================== */
-
-#include "Python.h"
-
-
-
-#ifdef _WIN32
-#include "pywintoolbox.h"
-#else
-#include "macglue.h"
-#include "pymactoolbox.h"
-#endif
-
-/* 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)
-
-
-#ifdef WITHOUT_FRAMEWORKS
-#include <Files.h>
-#else
-#include <Carbon/Carbon.h>
-#endif
-
-#ifdef USE_TOOLBOX_OBJECT_GLUE
-extern int _PyMac_GetFSSpec(PyObject *v, FSSpec *spec);
-extern int _PyMac_GetFSRef(PyObject *v, FSRef *fsr);
-extern PyObject *_PyMac_BuildFSSpec(FSSpec *spec);
-extern PyObject *_PyMac_BuildFSRef(FSRef *spec);
-
-#define PyMac_GetFSSpec _PyMac_GetFSSpec
-#define PyMac_GetFSRef _PyMac_GetFSRef
-#define PyMac_BuildFSSpec _PyMac_BuildFSSpec
-#define PyMac_BuildFSRef _PyMac_BuildFSRef
-#else
-extern int PyMac_GetFSSpec(PyObject *v, FSSpec *spec);
-extern int PyMac_GetFSRef(PyObject *v, FSRef *fsr);
-extern PyObject *PyMac_BuildFSSpec(FSSpec *spec);
-extern PyObject *PyMac_BuildFSRef(FSRef *spec);
-#endif
-
-/* Forward declarations */
-static PyObject *FInfo_New(FInfo *itself);
-static PyObject *FSRef_New(FSRef *itself);
-static PyObject *FSSpec_New(FSSpec *itself);
-static PyObject *Alias_New(AliasHandle itself);
-static int FInfo_Convert(PyObject *v, FInfo *p_itself);
-#define FSRef_Convert PyMac_GetFSRef
-#define FSSpec_Convert PyMac_GetFSSpec
-static int Alias_Convert(PyObject *v, AliasHandle *p_itself);
-
-/*
-** UTCDateTime records
-*/
-static int
-UTCDateTime_Convert(PyObject *v, UTCDateTime *ptr)
-{
-       return PyArg_Parse(v, "(HlH)", &ptr->highSeconds, &ptr->lowSeconds, &ptr->fraction);
-}
-
-static PyObject *
-UTCDateTime_New(UTCDateTime *ptr)
-{
-       return Py_BuildValue("(HlH)", ptr->highSeconds, ptr->lowSeconds, ptr->fraction);
-}
-
-/*
-** Optional fsspec and fsref pointers. None will pass NULL
-*/
-static int
-myPyMac_GetOptFSSpecPtr(PyObject *v, FSSpec **spec)
-{
-       if (v == Py_None) {
-               *spec = NULL;
-               return 1;
-       }
-       return PyMac_GetFSSpec(v, *spec);
-}
-
-static int
-myPyMac_GetOptFSRefPtr(PyObject *v, FSRef **ref)
-{
-       if (v == Py_None) {
-               *ref = NULL;
-               return 1;
-       }
-       return PyMac_GetFSRef(v, *ref);
-}
-
-/*
-** Parse/generate objsect
-*/
-static PyObject *
-PyMac_BuildHFSUniStr255(HFSUniStr255 *itself)
-{
-
-       return Py_BuildValue("u#", itself->unicode, itself->length);
-}
-
-static PyObject *File_Error;
-
-static PyTypeObject FInfo_Type;
-
-#define FInfo_Check(x) ((x)->ob_type == &FInfo_Type || PyObject_TypeCheck((x), &FInfo_Type))
-
-typedef struct FInfoObject {
-       PyObject_HEAD
-       FInfo ob_itself;
-} FInfoObject;
-
-/* ------------------- Object type FSCatalogInfo -------------------- */
-
-static PyTypeObject FSCatalogInfo_Type;
-
-#define FSCatalogInfo_Check(x) ((x)->ob_type == &FSCatalogInfo_Type || PyObject_TypeCheck((x), &FSCatalogInfo_Type))
-
-typedef struct FSCatalogInfoObject {
-       PyObject_HEAD
-       FSCatalogInfo ob_itself;
-} FSCatalogInfoObject;
-
-static PyObject *FSCatalogInfo_New(FSCatalogInfo *itself)
-{
-       FSCatalogInfoObject *it;
-       if (itself == NULL) return Py_None;
-       it = PyObject_NEW(FSCatalogInfoObject, &FSCatalogInfo_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = *itself;
-       return (PyObject *)it;
-}
-static int FSCatalogInfo_Convert(PyObject *v, FSCatalogInfo *p_itself)
-{
-       if (!FSCatalogInfo_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "FSCatalogInfo required");
-               return 0;
-       }
-       *p_itself = ((FSCatalogInfoObject *)v)->ob_itself;
-       return 1;
-}
-
-static void FSCatalogInfo_dealloc(FSCatalogInfoObject *self)
-{
-       /* Cleanup of self->ob_itself goes here */
-       self->ob_type->tp_free((PyObject *)self);
-}
-
-static PyMethodDef FSCatalogInfo_methods[] = {
-       {NULL, NULL, 0}
-};
-
-static PyObject *FSCatalogInfo_get_nodeFlags(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("H", self->ob_itself.nodeFlags);
-}
-
-static int FSCatalogInfo_set_nodeFlags(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "H", &self->ob_itself.nodeFlags)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_volume(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("h", self->ob_itself.volume);
-}
-
-static int FSCatalogInfo_set_volume(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "h", &self->ob_itself.volume)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_parentDirID(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.parentDirID);
-}
-
-static int FSCatalogInfo_set_parentDirID(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.parentDirID)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_nodeID(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.nodeID);
-}
-
-static int FSCatalogInfo_set_nodeID(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.nodeID)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_createDate(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", UTCDateTime_New, &self->ob_itself.createDate);
-}
-
-static int FSCatalogInfo_set_createDate(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", UTCDateTime_Convert, &self->ob_itself.createDate)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_contentModDate(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", UTCDateTime_New, &self->ob_itself.contentModDate);
-}
-
-static int FSCatalogInfo_set_contentModDate(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", UTCDateTime_Convert, &self->ob_itself.contentModDate)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_attributeModDate(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", UTCDateTime_New, &self->ob_itself.attributeModDate);
-}
-
-static int FSCatalogInfo_set_attributeModDate(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", UTCDateTime_Convert, &self->ob_itself.attributeModDate)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_accessDate(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", UTCDateTime_New, &self->ob_itself.accessDate);
-}
-
-static int FSCatalogInfo_set_accessDate(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", UTCDateTime_Convert, &self->ob_itself.accessDate)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_backupDate(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", UTCDateTime_New, &self->ob_itself.backupDate);
-}
-
-static int FSCatalogInfo_set_backupDate(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", UTCDateTime_Convert, &self->ob_itself.backupDate)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_permissions(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("(llll)", self->ob_itself.permissions[0], self->ob_itself.permissions[1], self->ob_itself.permissions[2], self->ob_itself.permissions[3]);
-}
-
-static int FSCatalogInfo_set_permissions(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "(llll)", &self->ob_itself.permissions[0], &self->ob_itself.permissions[1], &self->ob_itself.permissions[2], &self->ob_itself.permissions[3])-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_valence(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.valence);
-}
-
-static int FSCatalogInfo_set_valence(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.valence)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_dataLogicalSize(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.dataLogicalSize);
-}
-
-static int FSCatalogInfo_set_dataLogicalSize(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.dataLogicalSize)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_dataPhysicalSize(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.dataPhysicalSize);
-}
-
-static int FSCatalogInfo_set_dataPhysicalSize(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.dataPhysicalSize)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_rsrcLogicalSize(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.rsrcLogicalSize);
-}
-
-static int FSCatalogInfo_set_rsrcLogicalSize(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.rsrcLogicalSize)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_rsrcPhysicalSize(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.rsrcPhysicalSize);
-}
-
-static int FSCatalogInfo_set_rsrcPhysicalSize(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.rsrcPhysicalSize)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_sharingFlags(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("l", self->ob_itself.sharingFlags);
-}
-
-static int FSCatalogInfo_set_sharingFlags(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "l", &self->ob_itself.sharingFlags)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_userPrivileges(FSCatalogInfoObject *self, void *closure)
-{
-       return Py_BuildValue("b", self->ob_itself.userPrivileges);
-}
-
-static int FSCatalogInfo_set_userPrivileges(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "b", &self->ob_itself.userPrivileges)-1;
-       return 0;
-}
-
-static PyObject *FSCatalogInfo_get_finderInfo(FSCatalogInfoObject *self, void *closure)
-{
-       return FInfo_New((FInfo *)self->ob_itself.finderInfo);
-}
-
-static int FSCatalogInfo_set_finderInfo(FSCatalogInfoObject *self, PyObject *v, void *closure)
-{
-       if (!FInfo_Check(v)) {
-               PyErr_SetString(PyExc_TypeError, "Expected an FInfo object");
-               return -1;
-       }
-       *(FInfo *)self->ob_itself.finderInfo = ((FInfoObject *)v)->ob_itself;
-       return 0;
-}
-
-static PyGetSetDef FSCatalogInfo_getsetlist[] = {
-       {"nodeFlags", (getter)FSCatalogInfo_get_nodeFlags, (setter)FSCatalogInfo_set_nodeFlags, NULL},
-       {"volume", (getter)FSCatalogInfo_get_volume, (setter)FSCatalogInfo_set_volume, NULL},
-       {"parentDirID", (getter)FSCatalogInfo_get_parentDirID, (setter)FSCatalogInfo_set_parentDirID, NULL},
-       {"nodeID", (getter)FSCatalogInfo_get_nodeID, (setter)FSCatalogInfo_set_nodeID, NULL},
-       {"createDate", (getter)FSCatalogInfo_get_createDate, (setter)FSCatalogInfo_set_createDate, NULL},
-       {"contentModDate", (getter)FSCatalogInfo_get_contentModDate, (setter)FSCatalogInfo_set_contentModDate, NULL},
-       {"attributeModDate", (getter)FSCatalogInfo_get_attributeModDate, (setter)FSCatalogInfo_set_attributeModDate, NULL},
-       {"accessDate", (getter)FSCatalogInfo_get_accessDate, (setter)FSCatalogInfo_set_accessDate, NULL},
-       {"backupDate", (getter)FSCatalogInfo_get_backupDate, (setter)FSCatalogInfo_set_backupDate, NULL},
-       {"permissions", (getter)FSCatalogInfo_get_permissions, (setter)FSCatalogInfo_set_permissions, NULL},
-       {"valence", (getter)FSCatalogInfo_get_valence, (setter)FSCatalogInfo_set_valence, NULL},
-       {"dataLogicalSize", (getter)FSCatalogInfo_get_dataLogicalSize, (setter)FSCatalogInfo_set_dataLogicalSize, NULL},
-       {"dataPhysicalSize", (getter)FSCatalogInfo_get_dataPhysicalSize, (setter)FSCatalogInfo_set_dataPhysicalSize, NULL},
-       {"rsrcLogicalSize", (getter)FSCatalogInfo_get_rsrcLogicalSize, (setter)FSCatalogInfo_set_rsrcLogicalSize, NULL},
-       {"rsrcPhysicalSize", (getter)FSCatalogInfo_get_rsrcPhysicalSize, (setter)FSCatalogInfo_set_rsrcPhysicalSize, NULL},
-       {"sharingFlags", (getter)FSCatalogInfo_get_sharingFlags, (setter)FSCatalogInfo_set_sharingFlags, NULL},
-       {"userPrivileges", (getter)FSCatalogInfo_get_userPrivileges, (setter)FSCatalogInfo_set_userPrivileges, NULL},
-       {"finderInfo", (getter)FSCatalogInfo_get_finderInfo, (setter)FSCatalogInfo_set_finderInfo, NULL},
-       {NULL, NULL, NULL, NULL},
-};
-
-
-#define FSCatalogInfo_compare NULL
-
-#define FSCatalogInfo_repr NULL
-
-#define FSCatalogInfo_hash NULL
-static int FSCatalogInfo_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
-       static char *kw[] = {
-                       "nodeFlags",
-                       "volume",
-                       "parentDirID",
-                       "nodeID",
-                       "createDate",
-                       "contentModDate",
-                       "atributeModDate",
-                       "accessDate",
-                       "backupDate",
-                       "valence",
-                       "dataLogicalSize",
-                       "dataPhysicalSize",
-                       "rsrcLogicalSize",
-                       "rsrcPhysicalSize",
-                       "sharingFlags",
-                       "userPrivileges"
-                       , 0};
-
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "|HhllO&O&O&O&O&llllllb", kw, &((FSCatalogInfoObject *)self)->ob_itself.nodeFlags,
-                       &((FSCatalogInfoObject *)self)->ob_itself.volume,
-                       &((FSCatalogInfoObject *)self)->ob_itself.parentDirID,
-                       &((FSCatalogInfoObject *)self)->ob_itself.nodeID,
-                       UTCDateTime_Convert, &((FSCatalogInfoObject *)self)->ob_itself.createDate,
-                       UTCDateTime_Convert, &((FSCatalogInfoObject *)self)->ob_itself.contentModDate,
-                       UTCDateTime_Convert, &((FSCatalogInfoObject *)self)->ob_itself.attributeModDate,
-                       UTCDateTime_Convert, &((FSCatalogInfoObject *)self)->ob_itself.accessDate,
-                       UTCDateTime_Convert, &((FSCatalogInfoObject *)self)->ob_itself.backupDate,
-                       &((FSCatalogInfoObject *)self)->ob_itself.valence,
-                       &((FSCatalogInfoObject *)self)->ob_itself.dataLogicalSize,
-                       &((FSCatalogInfoObject *)self)->ob_itself.dataPhysicalSize,
-                       &((FSCatalogInfoObject *)self)->ob_itself.rsrcLogicalSize,
-                       &((FSCatalogInfoObject *)self)->ob_itself.rsrcPhysicalSize,
-                       &((FSCatalogInfoObject *)self)->ob_itself.sharingFlags,
-                       &((FSCatalogInfoObject *)self)->ob_itself.userPrivileges))
-       {
-               return -1;
-       }
-       return 0;
-}
-
-#define FSCatalogInfo_tp_alloc PyType_GenericAlloc
-
-static PyObject *FSCatalogInfo_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-       PyObject *self;
-
-       if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
-       memset(&((FSCatalogInfoObject *)self)->ob_itself, 0, sizeof(FSCatalogInfo));
-       return self;
-}
-
-#define FSCatalogInfo_tp_free PyObject_Del
-
-
-static PyTypeObject FSCatalogInfo_Type = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
-       "Carbon.File.FSCatalogInfo", /*tp_name*/
-       sizeof(FSCatalogInfoObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) FSCatalogInfo_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc)0, /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc) FSCatalogInfo_compare, /*tp_compare*/
-       (reprfunc) FSCatalogInfo_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) FSCatalogInfo_hash, /*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_BASETYPE, /* tp_flags */
-       0, /*tp_doc*/
-       0, /*tp_traverse*/
-       0, /*tp_clear*/
-       0, /*tp_richcompare*/
-       0, /*tp_weaklistoffset*/
-       0, /*tp_iter*/
-       0, /*tp_iternext*/
-       FSCatalogInfo_methods, /* tp_methods */
-       0, /*tp_members*/
-       FSCatalogInfo_getsetlist, /*tp_getset*/
-       0, /*tp_base*/
-       0, /*tp_dict*/
-       0, /*tp_descr_get*/
-       0, /*tp_descr_set*/
-       0, /*tp_dictoffset*/
-       FSCatalogInfo_tp_init, /* tp_init */
-       FSCatalogInfo_tp_alloc, /* tp_alloc */
-       FSCatalogInfo_tp_new, /* tp_new */
-       FSCatalogInfo_tp_free, /* tp_free */
-};
-
-/* ----------------- End object type FSCatalogInfo ------------------ */
-
-
-/* ----------------------- Object type FInfo ------------------------ */
-
-static PyObject *FInfo_New(FInfo *itself)
-{
-       FInfoObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(FInfoObject, &FInfo_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = *itself;
-       return (PyObject *)it;
-}
-static int FInfo_Convert(PyObject *v, FInfo *p_itself)
-{
-       if (!FInfo_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "FInfo required");
-               return 0;
-       }
-       *p_itself = ((FInfoObject *)v)->ob_itself;
-       return 1;
-}
-
-static void FInfo_dealloc(FInfoObject *self)
-{
-       /* Cleanup of self->ob_itself goes here */
-       self->ob_type->tp_free((PyObject *)self);
-}
-
-static PyMethodDef FInfo_methods[] = {
-       {NULL, NULL, 0}
-};
-
-static PyObject *FInfo_get_Type(FInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", PyMac_BuildOSType, self->ob_itself.fdType);
-}
-
-static int FInfo_set_Type(FInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", PyMac_GetOSType, &self->ob_itself.fdType)-1;
-       return 0;
-}
-
-static PyObject *FInfo_get_Creator(FInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", PyMac_BuildOSType, self->ob_itself.fdCreator);
-}
-
-static int FInfo_set_Creator(FInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", PyMac_GetOSType, &self->ob_itself.fdCreator)-1;
-       return 0;
-}
-
-static PyObject *FInfo_get_Flags(FInfoObject *self, void *closure)
-{
-       return Py_BuildValue("H", self->ob_itself.fdFlags);
-}
-
-static int FInfo_set_Flags(FInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "H", &self->ob_itself.fdFlags)-1;
-       return 0;
-}
-
-static PyObject *FInfo_get_Location(FInfoObject *self, void *closure)
-{
-       return Py_BuildValue("O&", PyMac_BuildPoint, self->ob_itself.fdLocation);
-}
-
-static int FInfo_set_Location(FInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "O&", PyMac_GetPoint, &self->ob_itself.fdLocation)-1;
-       return 0;
-}
-
-static PyObject *FInfo_get_Fldr(FInfoObject *self, void *closure)
-{
-       return Py_BuildValue("h", self->ob_itself.fdFldr);
-}
-
-static int FInfo_set_Fldr(FInfoObject *self, PyObject *v, void *closure)
-{
-       return PyArg_Parse(v, "h", &self->ob_itself.fdFldr)-1;
-       return 0;
-}
-
-static PyGetSetDef FInfo_getsetlist[] = {
-       {"Type", (getter)FInfo_get_Type, (setter)FInfo_set_Type, "4-char file type"},
-       {"Creator", (getter)FInfo_get_Creator, (setter)FInfo_set_Creator, "4-char file creator"},
-       {"Flags", (getter)FInfo_get_Flags, (setter)FInfo_set_Flags, "Finder flag bits"},
-       {"Location", (getter)FInfo_get_Location, (setter)FInfo_set_Location, "(x, y) location of the file's icon in its parent finder window"},
-       {"Fldr", (getter)FInfo_get_Fldr, (setter)FInfo_set_Fldr, "Original folder, for 'put away'"},
-       {NULL, NULL, NULL, NULL},
-};
-
-
-#define FInfo_compare NULL
-
-#define FInfo_repr NULL
-
-#define FInfo_hash NULL
-static int FInfo_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
-       FInfo *itself = NULL;
-       static char *kw[] = {"itself", 0};
-
-       if (PyArg_ParseTupleAndKeywords(args, kwds, "|O&", kw, FInfo_Convert, &itself))
-       {
-               if (itself) memcpy(&((FInfoObject *)self)->ob_itself, itself, sizeof(FInfo));
-               return 0;
-       }
-       return -1;
-}
-
-#define FInfo_tp_alloc PyType_GenericAlloc
-
-static PyObject *FInfo_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-       PyObject *self;
-
-       if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
-       memset(&((FInfoObject *)self)->ob_itself, 0, sizeof(FInfo));
-       return self;
-}
-
-#define FInfo_tp_free PyObject_Del
-
-
-static PyTypeObject FInfo_Type = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
-       "Carbon.File.FInfo", /*tp_name*/
-       sizeof(FInfoObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) FInfo_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc)0, /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc) FInfo_compare, /*tp_compare*/
-       (reprfunc) FInfo_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) FInfo_hash, /*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_BASETYPE, /* tp_flags */
-       0, /*tp_doc*/
-       0, /*tp_traverse*/
-       0, /*tp_clear*/
-       0, /*tp_richcompare*/
-       0, /*tp_weaklistoffset*/
-       0, /*tp_iter*/
-       0, /*tp_iternext*/
-       FInfo_methods, /* tp_methods */
-       0, /*tp_members*/
-       FInfo_getsetlist, /*tp_getset*/
-       0, /*tp_base*/
-       0, /*tp_dict*/
-       0, /*tp_descr_get*/
-       0, /*tp_descr_set*/
-       0, /*tp_dictoffset*/
-       FInfo_tp_init, /* tp_init */
-       FInfo_tp_alloc, /* tp_alloc */
-       FInfo_tp_new, /* tp_new */
-       FInfo_tp_free, /* tp_free */
-};
-
-/* --------------------- End object type FInfo ---------------------- */
-
-
-/* ----------------------- Object type Alias ------------------------ */
-
-static PyTypeObject Alias_Type;
-
-#define Alias_Check(x) ((x)->ob_type == &Alias_Type || PyObject_TypeCheck((x), &Alias_Type))
-
-typedef struct AliasObject {
-       PyObject_HEAD
-       AliasHandle ob_itself;
-       void (*ob_freeit)(AliasHandle ptr);
-} AliasObject;
-
-static PyObject *Alias_New(AliasHandle itself)
-{
-       AliasObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(AliasObject, &Alias_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_freeit = NULL;
-       return (PyObject *)it;
-}
-static int Alias_Convert(PyObject *v, AliasHandle *p_itself)
-{
-       if (!Alias_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Alias required");
-               return 0;
-       }
-       *p_itself = ((AliasObject *)v)->ob_itself;
-       return 1;
-}
-
-static void Alias_dealloc(AliasObject *self)
-{
-       if (self->ob_freeit && self->ob_itself)
-       {
-               self->ob_freeit(self->ob_itself);
-       }
-       self->ob_itself = NULL;
-       self->ob_type->tp_free((PyObject *)self);
-}
-
-static PyObject *Alias_ResolveAlias(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fromFile__buf__;
-       FSSpec *fromFile = &fromFile__buf__;
-       FSSpec target;
-       Boolean wasChanged;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             myPyMac_GetOptFSSpecPtr, &fromFile))
-               return NULL;
-       _err = ResolveAlias(fromFile,
-                           _self->ob_itself,
-                           &target,
-                           &wasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            FSSpec_New, &target,
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *Alias_GetAliasInfo(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AliasInfoType index;
-       Str63 theString;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       _err = GetAliasInfo(_self->ob_itself,
-                           index,
-                           theString);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, theString);
-       return _res;
-}
-
-static PyObject *Alias_ResolveAliasWithMountFlags(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fromFile__buf__;
-       FSSpec *fromFile = &fromFile__buf__;
-       FSSpec target;
-       Boolean wasChanged;
-       unsigned long mountFlags;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             myPyMac_GetOptFSSpecPtr, &fromFile,
-                             &mountFlags))
-               return NULL;
-       _err = ResolveAliasWithMountFlags(fromFile,
-                                         _self->ob_itself,
-                                         &target,
-                                         &wasChanged,
-                                         mountFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            FSSpec_New, &target,
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *Alias_FollowFinderAlias(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fromFile__buf__;
-       FSSpec *fromFile = &fromFile__buf__;
-       Boolean logon;
-       FSSpec target;
-       Boolean wasChanged;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             myPyMac_GetOptFSSpecPtr, &fromFile,
-                             &logon))
-               return NULL;
-       _err = FollowFinderAlias(fromFile,
-                                _self->ob_itself,
-                                logon,
-                                &target,
-                                &wasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            FSSpec_New, &target,
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *Alias_FSResolveAliasWithMountFlags(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef fromFile__buf__;
-       FSRef *fromFile = &fromFile__buf__;
-       FSRef target;
-       Boolean wasChanged;
-       unsigned long mountFlags;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             myPyMac_GetOptFSRefPtr, &fromFile,
-                             &mountFlags))
-               return NULL;
-       _err = FSResolveAliasWithMountFlags(fromFile,
-                                           _self->ob_itself,
-                                           &target,
-                                           &wasChanged,
-                                           mountFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            FSRef_New, &target,
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *Alias_FSResolveAlias(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef fromFile__buf__;
-       FSRef *fromFile = &fromFile__buf__;
-       FSRef target;
-       Boolean wasChanged;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             myPyMac_GetOptFSRefPtr, &fromFile))
-               return NULL;
-       _err = FSResolveAlias(fromFile,
-                             _self->ob_itself,
-                             &target,
-                             &wasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            FSRef_New, &target,
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *Alias_FSFollowFinderAlias(AliasObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef fromFile;
-       Boolean logon;
-       FSRef target;
-       Boolean wasChanged;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &logon))
-               return NULL;
-       _err = FSFollowFinderAlias(&fromFile,
-                                  _self->ob_itself,
-                                  logon,
-                                  &target,
-                                  &wasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&b",
-                            FSRef_New, &fromFile,
-                            FSRef_New, &target,
-                            wasChanged);
-       return _res;
-}
-
-static PyMethodDef Alias_methods[] = {
-       {"ResolveAlias", (PyCFunction)Alias_ResolveAlias, 1,
-        PyDoc_STR("(FSSpec fromFile) -> (FSSpec target, Boolean wasChanged)")},
-       {"GetAliasInfo", (PyCFunction)Alias_GetAliasInfo, 1,
-        PyDoc_STR("(AliasInfoType index) -> (Str63 theString)")},
-       {"ResolveAliasWithMountFlags", (PyCFunction)Alias_ResolveAliasWithMountFlags, 1,
-        PyDoc_STR("(FSSpec fromFile, unsigned long mountFlags) -> (FSSpec target, Boolean wasChanged)")},
-       {"FollowFinderAlias", (PyCFunction)Alias_FollowFinderAlias, 1,
-        PyDoc_STR("(FSSpec fromFile, Boolean logon) -> (FSSpec target, Boolean wasChanged)")},
-       {"FSResolveAliasWithMountFlags", (PyCFunction)Alias_FSResolveAliasWithMountFlags, 1,
-        PyDoc_STR("(FSRef fromFile, unsigned long mountFlags) -> (FSRef target, Boolean wasChanged)")},
-       {"FSResolveAlias", (PyCFunction)Alias_FSResolveAlias, 1,
-        PyDoc_STR("(FSRef fromFile) -> (FSRef target, Boolean wasChanged)")},
-       {"FSFollowFinderAlias", (PyCFunction)Alias_FSFollowFinderAlias, 1,
-        PyDoc_STR("(Boolean logon) -> (FSRef fromFile, FSRef target, Boolean wasChanged)")},
-       {NULL, NULL, 0}
-};
-
-static PyObject *Alias_get_data(AliasObject *self, void *closure)
-{
-       int size;
-                               PyObject *rv;
-                               
-                               size = GetHandleSize((Handle)self->ob_itself);
-                               HLock((Handle)self->ob_itself);
-                               rv = PyString_FromStringAndSize(*(Handle)self->ob_itself, size);
-                               HUnlock((Handle)self->ob_itself);
-                               return rv;
-                       
-}
-
-#define Alias_set_data NULL
-
-static PyGetSetDef Alias_getsetlist[] = {
-       {"data", (getter)Alias_get_data, (setter)Alias_set_data, "Raw data of the alias object"},
-       {NULL, NULL, NULL, NULL},
-};
-
-
-#define Alias_compare NULL
-
-#define Alias_repr NULL
-
-#define Alias_hash NULL
-static int Alias_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
-       AliasHandle itself = NULL;
-       char *rawdata = NULL;
-       int rawdatalen = 0;
-       Handle h;
-       static char *kw[] = {"itself", "rawdata", 0};
-
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O&s#", kw, Alias_Convert, &itself, &rawdata, &rawdatalen))
-       return -1;
-       if (itself && rawdata)
-       {
-               PyErr_SetString(PyExc_TypeError, "Only one of itself or rawdata may be specified");
-               return -1;
-       }
-       if (!itself && !rawdata)
-       {
-               PyErr_SetString(PyExc_TypeError, "One of itself or rawdata must be specified");
-               return -1;
-       }
-       if (rawdata)
-       {
-               if ((h = NewHandle(rawdatalen)) == NULL)
-               {
-                       PyErr_NoMemory();
-                       return -1;
-               }
-               HLock(h);
-               memcpy((char *)*h, rawdata, rawdatalen);
-               HUnlock(h);
-               ((AliasObject *)self)->ob_itself = (AliasHandle)h;
-               return 0;
-       }
-       ((AliasObject *)self)->ob_itself = itself;
-       return 0;
-}
-
-#define Alias_tp_alloc PyType_GenericAlloc
-
-static PyObject *Alias_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-       PyObject *self;
-
-       if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
-       ((AliasObject *)self)->ob_itself = NULL;
-       return self;
-}
-
-#define Alias_tp_free PyObject_Del
-
-
-static PyTypeObject Alias_Type = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
-       "Carbon.File.Alias", /*tp_name*/
-       sizeof(AliasObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) Alias_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc)0, /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc) Alias_compare, /*tp_compare*/
-       (reprfunc) Alias_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) Alias_hash, /*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_BASETYPE, /* tp_flags */
-       0, /*tp_doc*/
-       0, /*tp_traverse*/
-       0, /*tp_clear*/
-       0, /*tp_richcompare*/
-       0, /*tp_weaklistoffset*/
-       0, /*tp_iter*/
-       0, /*tp_iternext*/
-       Alias_methods, /* tp_methods */
-       0, /*tp_members*/
-       Alias_getsetlist, /*tp_getset*/
-       0, /*tp_base*/
-       0, /*tp_dict*/
-       0, /*tp_descr_get*/
-       0, /*tp_descr_set*/
-       0, /*tp_dictoffset*/
-       Alias_tp_init, /* tp_init */
-       Alias_tp_alloc, /* tp_alloc */
-       Alias_tp_new, /* tp_new */
-       Alias_tp_free, /* tp_free */
-};
-
-/* --------------------- End object type Alias ---------------------- */
-
-
-/* ----------------------- Object type FSSpec ----------------------- */
-
-static PyTypeObject FSSpec_Type;
-
-#define FSSpec_Check(x) ((x)->ob_type == &FSSpec_Type || PyObject_TypeCheck((x), &FSSpec_Type))
-
-typedef struct FSSpecObject {
-       PyObject_HEAD
-       FSSpec ob_itself;
-} FSSpecObject;
-
-static PyObject *FSSpec_New(FSSpec *itself)
-{
-       FSSpecObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(FSSpecObject, &FSSpec_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = *itself;
-       return (PyObject *)it;
-}
-
-static void FSSpec_dealloc(FSSpecObject *self)
-{
-       /* Cleanup of self->ob_itself goes here */
-       self->ob_type->tp_free((PyObject *)self);
-}
-
-static PyObject *FSSpec_FSpOpenDF(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt8 permission;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &permission))
-               return NULL;
-       _err = FSpOpenDF(&_self->ob_itself,
-                        permission,
-                        &refNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            refNum);
-       return _res;
-}
-
-static PyObject *FSSpec_FSpOpenRF(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt8 permission;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &permission))
-               return NULL;
-       _err = FSpOpenRF(&_self->ob_itself,
-                        permission,
-                        &refNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            refNum);
-       return _res;
-}
-
-static PyObject *FSSpec_FSpCreate(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType creator;
-       OSType fileType;
-       ScriptCode scriptTag;
-       if (!PyArg_ParseTuple(_args, "O&O&h",
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &fileType,
-                             &scriptTag))
-               return NULL;
-       _err = FSpCreate(&_self->ob_itself,
-                        creator,
-                        fileType,
-                        scriptTag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpDirCreate(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ScriptCode scriptTag;
-       long createdDirID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &scriptTag))
-               return NULL;
-       _err = FSpDirCreate(&_self->ob_itself,
-                           scriptTag,
-                           &createdDirID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            createdDirID);
-       return _res;
-}
-
-static PyObject *FSSpec_FSpDelete(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSpDelete(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpGetFInfo(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FInfo fndrInfo;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSpGetFInfo(&_self->ob_itself,
-                          &fndrInfo);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FInfo_New, &fndrInfo);
-       return _res;
-}
-
-static PyObject *FSSpec_FSpSetFInfo(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FInfo fndrInfo;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             FInfo_Convert, &fndrInfo))
-               return NULL;
-       _err = FSpSetFInfo(&_self->ob_itself,
-                          &fndrInfo);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpSetFLock(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSpSetFLock(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpRstFLock(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSpRstFLock(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpRename(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str255 newName;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, newName))
-               return NULL;
-       _err = FSpRename(&_self->ob_itself,
-                        newName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpCatMove(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec dest;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             FSSpec_Convert, &dest))
-               return NULL;
-       _err = FSpCatMove(&_self->ob_itself,
-                         &dest);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpExchangeFiles(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec dest;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             FSSpec_Convert, &dest))
-               return NULL;
-       _err = FSpExchangeFiles(&_self->ob_itself,
-                               &dest);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSSpec_FSpMakeFSRef(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef newRef;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSpMakeFSRef(&_self->ob_itself,
-                           &newRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FSRef_New, &newRef);
-       return _res;
-}
-
-static PyObject *FSSpec_NewAliasMinimal(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AliasHandle alias;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = NewAliasMinimal(&_self->ob_itself,
-                              &alias);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            Alias_New, alias);
-       return _res;
-}
-
-static PyObject *FSSpec_IsAliasFile(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean aliasFileFlag;
-       Boolean folderFlag;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = IsAliasFile(&_self->ob_itself,
-                          &aliasFileFlag,
-                          &folderFlag);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("bb",
-                            aliasFileFlag,
-                            folderFlag);
-       return _res;
-}
-
-static PyObject *FSSpec_as_pathname(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-
-       char strbuf[1024];
-       OSErr err;
-
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       err = PyMac_GetFullPathname(&_self->ob_itself, strbuf, sizeof(strbuf));
-       if ( err ) {
-               PyMac_Error(err);
-               return NULL;
-       }
-       _res = PyString_FromString(strbuf);
-       return _res;
-
-}
-
-static PyObject *FSSpec_as_tuple(FSSpecObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _res = Py_BuildValue("(iis#)", _self->ob_itself.vRefNum, _self->ob_itself.parID, 
-                                               &_self->ob_itself.name[1], _self->ob_itself.name[0]);
-       return _res;
-
-}
-
-static PyMethodDef FSSpec_methods[] = {
-       {"FSpOpenDF", (PyCFunction)FSSpec_FSpOpenDF, 1,
-        PyDoc_STR("(SInt8 permission) -> (short refNum)")},
-       {"FSpOpenRF", (PyCFunction)FSSpec_FSpOpenRF, 1,
-        PyDoc_STR("(SInt8 permission) -> (short refNum)")},
-       {"FSpCreate", (PyCFunction)FSSpec_FSpCreate, 1,
-        PyDoc_STR("(OSType creator, OSType fileType, ScriptCode scriptTag) -> None")},
-       {"FSpDirCreate", (PyCFunction)FSSpec_FSpDirCreate, 1,
-        PyDoc_STR("(ScriptCode scriptTag) -> (long createdDirID)")},
-       {"FSpDelete", (PyCFunction)FSSpec_FSpDelete, 1,
-        PyDoc_STR("() -> None")},
-       {"FSpGetFInfo", (PyCFunction)FSSpec_FSpGetFInfo, 1,
-        PyDoc_STR("() -> (FInfo fndrInfo)")},
-       {"FSpSetFInfo", (PyCFunction)FSSpec_FSpSetFInfo, 1,
-        PyDoc_STR("(FInfo fndrInfo) -> None")},
-       {"FSpSetFLock", (PyCFunction)FSSpec_FSpSetFLock, 1,
-        PyDoc_STR("() -> None")},
-       {"FSpRstFLock", (PyCFunction)FSSpec_FSpRstFLock, 1,
-        PyDoc_STR("() -> None")},
-       {"FSpRename", (PyCFunction)FSSpec_FSpRename, 1,
-        PyDoc_STR("(Str255 newName) -> None")},
-       {"FSpCatMove", (PyCFunction)FSSpec_FSpCatMove, 1,
-        PyDoc_STR("(FSSpec dest) -> None")},
-       {"FSpExchangeFiles", (PyCFunction)FSSpec_FSpExchangeFiles, 1,
-        PyDoc_STR("(FSSpec dest) -> None")},
-       {"FSpMakeFSRef", (PyCFunction)FSSpec_FSpMakeFSRef, 1,
-        PyDoc_STR("() -> (FSRef newRef)")},
-       {"NewAliasMinimal", (PyCFunction)FSSpec_NewAliasMinimal, 1,
-        PyDoc_STR("() -> (AliasHandle alias)")},
-       {"IsAliasFile", (PyCFunction)FSSpec_IsAliasFile, 1,
-        PyDoc_STR("() -> (Boolean aliasFileFlag, Boolean folderFlag)")},
-       {"as_pathname", (PyCFunction)FSSpec_as_pathname, 1,
-        PyDoc_STR("() -> string")},
-       {"as_tuple", (PyCFunction)FSSpec_as_tuple, 1,
-        PyDoc_STR("() -> (vRefNum, dirID, name)")},
-       {NULL, NULL, 0}
-};
-
-static PyObject *FSSpec_get_data(FSSpecObject *self, void *closure)
-{
-       return PyString_FromStringAndSize((char *)&self->ob_itself, sizeof(self->ob_itself));
-}
-
-#define FSSpec_set_data NULL
-
-static PyGetSetDef FSSpec_getsetlist[] = {
-       {"data", (getter)FSSpec_get_data, (setter)FSSpec_set_data, "Raw data of the FSSpec object"},
-       {NULL, NULL, NULL, NULL},
-};
-
-
-#define FSSpec_compare NULL
-
-static PyObject * FSSpec_repr(FSSpecObject *self)
-{
-       char buf[512];
-       PyOS_snprintf(buf, sizeof(buf), "%s((%d, %ld, '%.*s'))",
-                       self->ob_type->tp_name,
-                       self->ob_itself.vRefNum, 
-                       self->ob_itself.parID,
-                       self->ob_itself.name[0], self->ob_itself.name+1);
-       return PyString_FromString(buf);
-}
-
-#define FSSpec_hash NULL
-static int FSSpec_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
-       PyObject *v = NULL;
-       char *rawdata = NULL;
-       int rawdatalen = 0;
-       static char *kw[] = {"itself", "rawdata", 0};
-
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "|Os#", kw, &v, &rawdata, &rawdatalen))
-       return -1;
-       if (v && rawdata)
-       {
-               PyErr_SetString(PyExc_TypeError, "Only one of itself or rawdata may be specified");
-               return -1;
-       }
-       if (!v && !rawdata)
-       {
-               PyErr_SetString(PyExc_TypeError, "One of itself or rawdata must be specified");
-               return -1;
-       }
-       if (rawdata)
-       {
-               if (rawdatalen != sizeof(FSSpec))
-               {
-                       PyErr_SetString(PyExc_TypeError, "FSSpec rawdata incorrect size");
-                       return -1;
-               }
-               memcpy(&((FSSpecObject *)self)->ob_itself, rawdata, rawdatalen);
-               return 0;
-       }
-       if (PyMac_GetFSSpec(v, &((FSSpecObject *)self)->ob_itself)) return 0;
-       return -1;
-}
-
-#define FSSpec_tp_alloc PyType_GenericAlloc
-
-static PyObject *FSSpec_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-       PyObject *self;
-
-       if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
-       memset(&((FSSpecObject *)self)->ob_itself, 0, sizeof(FSSpec));
-       return self;
-}
-
-#define FSSpec_tp_free PyObject_Del
-
-
-static PyTypeObject FSSpec_Type = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
-       "Carbon.File.FSSpec", /*tp_name*/
-       sizeof(FSSpecObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) FSSpec_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc)0, /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc) FSSpec_compare, /*tp_compare*/
-       (reprfunc) FSSpec_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) FSSpec_hash, /*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_BASETYPE, /* tp_flags */
-       0, /*tp_doc*/
-       0, /*tp_traverse*/
-       0, /*tp_clear*/
-       0, /*tp_richcompare*/
-       0, /*tp_weaklistoffset*/
-       0, /*tp_iter*/
-       0, /*tp_iternext*/
-       FSSpec_methods, /* tp_methods */
-       0, /*tp_members*/
-       FSSpec_getsetlist, /*tp_getset*/
-       0, /*tp_base*/
-       0, /*tp_dict*/
-       0, /*tp_descr_get*/
-       0, /*tp_descr_set*/
-       0, /*tp_dictoffset*/
-       FSSpec_tp_init, /* tp_init */
-       FSSpec_tp_alloc, /* tp_alloc */
-       FSSpec_tp_new, /* tp_new */
-       FSSpec_tp_free, /* tp_free */
-};
-
-/* --------------------- End object type FSSpec --------------------- */
-
-
-/* ----------------------- Object type FSRef ------------------------ */
-
-static PyTypeObject FSRef_Type;
-
-#define FSRef_Check(x) ((x)->ob_type == &FSRef_Type || PyObject_TypeCheck((x), &FSRef_Type))
-
-typedef struct FSRefObject {
-       PyObject_HEAD
-       FSRef ob_itself;
-} FSRefObject;
-
-static PyObject *FSRef_New(FSRef *itself)
-{
-       FSRefObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(FSRefObject, &FSRef_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = *itself;
-       return (PyObject *)it;
-}
-
-static void FSRef_dealloc(FSRefObject *self)
-{
-       /* Cleanup of self->ob_itself goes here */
-       self->ob_type->tp_free((PyObject *)self);
-}
-
-static PyObject *FSRef_FSMakeFSRefUnicode(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *nameLength__in__;
-       UniCharCount nameLength__len__;
-       int nameLength__in_len__;
-       TextEncoding textEncodingHint;
-       FSRef newRef;
-       if (!PyArg_ParseTuple(_args, "u#l",
-                             &nameLength__in__, &nameLength__in_len__,
-                             &textEncodingHint))
-               return NULL;
-       nameLength__len__ = nameLength__in_len__;
-       _err = FSMakeFSRefUnicode(&_self->ob_itself,
-                                 nameLength__len__, nameLength__in__,
-                                 textEncodingHint,
-                                 &newRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FSRef_New, &newRef);
-       return _res;
-}
-
-static PyObject *FSRef_FSCompareFSRefs(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef ref2;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             FSRef_Convert, &ref2))
-               return NULL;
-       _err = FSCompareFSRefs(&_self->ob_itself,
-                              &ref2);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSRef_FSCreateFileUnicode(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *nameLength__in__;
-       UniCharCount nameLength__len__;
-       int nameLength__in_len__;
-       FSCatalogInfoBitmap whichInfo;
-       FSCatalogInfo catalogInfo;
-       FSRef newRef;
-       FSSpec newSpec;
-       if (!PyArg_ParseTuple(_args, "u#lO&",
-                             &nameLength__in__, &nameLength__in_len__,
-                             &whichInfo,
-                             FSCatalogInfo_Convert, &catalogInfo))
-               return NULL;
-       nameLength__len__ = nameLength__in_len__;
-       _err = FSCreateFileUnicode(&_self->ob_itself,
-                                  nameLength__len__, nameLength__in__,
-                                  whichInfo,
-                                  &catalogInfo,
-                                  &newRef,
-                                  &newSpec);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            FSRef_New, &newRef,
-                            FSSpec_New, &newSpec);
-       return _res;
-}
-
-static PyObject *FSRef_FSCreateDirectoryUnicode(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *nameLength__in__;
-       UniCharCount nameLength__len__;
-       int nameLength__in_len__;
-       FSCatalogInfoBitmap whichInfo;
-       FSCatalogInfo catalogInfo;
-       FSRef newRef;
-       FSSpec newSpec;
-       UInt32 newDirID;
-       if (!PyArg_ParseTuple(_args, "u#lO&",
-                             &nameLength__in__, &nameLength__in_len__,
-                             &whichInfo,
-                             FSCatalogInfo_Convert, &catalogInfo))
-               return NULL;
-       nameLength__len__ = nameLength__in_len__;
-       _err = FSCreateDirectoryUnicode(&_self->ob_itself,
-                                       nameLength__len__, nameLength__in__,
-                                       whichInfo,
-                                       &catalogInfo,
-                                       &newRef,
-                                       &newSpec,
-                                       &newDirID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&l",
-                            FSRef_New, &newRef,
-                            FSSpec_New, &newSpec,
-                            newDirID);
-       return _res;
-}
-
-static PyObject *FSRef_FSDeleteObject(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSDeleteObject(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSRef_FSMoveObject(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef destDirectory;
-       FSRef newRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             FSRef_Convert, &destDirectory))
-               return NULL;
-       _err = FSMoveObject(&_self->ob_itself,
-                           &destDirectory,
-                           &newRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FSRef_New, &newRef);
-       return _res;
-}
-
-static PyObject *FSRef_FSExchangeObjects(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef destRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             FSRef_Convert, &destRef))
-               return NULL;
-       _err = FSExchangeObjects(&_self->ob_itself,
-                                &destRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSRef_FSRenameUnicode(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *nameLength__in__;
-       UniCharCount nameLength__len__;
-       int nameLength__in_len__;
-       TextEncoding textEncodingHint;
-       FSRef newRef;
-       if (!PyArg_ParseTuple(_args, "u#l",
-                             &nameLength__in__, &nameLength__in_len__,
-                             &textEncodingHint))
-               return NULL;
-       nameLength__len__ = nameLength__in_len__;
-       _err = FSRenameUnicode(&_self->ob_itself,
-                              nameLength__len__, nameLength__in__,
-                              textEncodingHint,
-                              &newRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FSRef_New, &newRef);
-       return _res;
-}
-
-static PyObject *FSRef_FSGetCatalogInfo(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSCatalogInfoBitmap whichInfo;
-       FSCatalogInfo catalogInfo;
-       HFSUniStr255 outName;
-       FSSpec fsSpec;
-       FSRef parentRef;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &whichInfo))
-               return NULL;
-       _err = FSGetCatalogInfo(&_self->ob_itself,
-                               whichInfo,
-                               &catalogInfo,
-                               &outName,
-                               &fsSpec,
-                               &parentRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&O&O&",
-                            FSCatalogInfo_New, &catalogInfo,
-                            PyMac_BuildHFSUniStr255, &outName,
-                            FSSpec_New, &fsSpec,
-                            FSRef_New, &parentRef);
-       return _res;
-}
-
-static PyObject *FSRef_FSSetCatalogInfo(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSCatalogInfoBitmap whichInfo;
-       FSCatalogInfo catalogInfo;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &whichInfo,
-                             FSCatalogInfo_Convert, &catalogInfo))
-               return NULL;
-       _err = FSSetCatalogInfo(&_self->ob_itself,
-                               whichInfo,
-                               &catalogInfo);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSRef_FSCreateFork(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *forkNameLength__in__;
-       UniCharCount forkNameLength__len__;
-       int forkNameLength__in_len__;
-       if (!PyArg_ParseTuple(_args, "u#",
-                             &forkNameLength__in__, &forkNameLength__in_len__))
-               return NULL;
-       forkNameLength__len__ = forkNameLength__in_len__;
-       _err = FSCreateFork(&_self->ob_itself,
-                           forkNameLength__len__, forkNameLength__in__);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSRef_FSDeleteFork(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *forkNameLength__in__;
-       UniCharCount forkNameLength__len__;
-       int forkNameLength__in_len__;
-       if (!PyArg_ParseTuple(_args, "u#",
-                             &forkNameLength__in__, &forkNameLength__in_len__))
-               return NULL;
-       forkNameLength__len__ = forkNameLength__in_len__;
-       _err = FSDeleteFork(&_self->ob_itself,
-                           forkNameLength__len__, forkNameLength__in__);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *FSRef_FSOpenFork(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UniChar *forkNameLength__in__;
-       UniCharCount forkNameLength__len__;
-       int forkNameLength__in_len__;
-       SInt8 permissions;
-       SInt16 forkRefNum;
-       if (!PyArg_ParseTuple(_args, "u#b",
-                             &forkNameLength__in__, &forkNameLength__in_len__,
-                             &permissions))
-               return NULL;
-       forkNameLength__len__ = forkNameLength__in_len__;
-       _err = FSOpenFork(&_self->ob_itself,
-                         forkNameLength__len__, forkNameLength__in__,
-                         permissions,
-                         &forkRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            forkRefNum);
-       return _res;
-}
-
-#if TARGET_API_MAC_OSX
-
-static PyObject *FSRef_FNNotify(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       FNMessage message;
-       OptionBits flags;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &message,
-                             &flags))
-               return NULL;
-       _err = FNNotify(&_self->ob_itself,
-                       message,
-                       flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *FSRef_FSNewAliasMinimal(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AliasHandle inAlias;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSNewAliasMinimal(&_self->ob_itself,
-                                &inAlias);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            Alias_New, inAlias);
-       return _res;
-}
-
-static PyObject *FSRef_FSIsAliasFile(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean aliasFileFlag;
-       Boolean folderFlag;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSIsAliasFile(&_self->ob_itself,
-                            &aliasFileFlag,
-                            &folderFlag);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("bb",
-                            aliasFileFlag,
-                            folderFlag);
-       return _res;
-}
-
-static PyObject *FSRef_FSRefMakePath(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-
-       OSStatus _err;
-#define MAXPATHNAME 1024
-       UInt8 path[MAXPATHNAME];
-       UInt32 maxPathSize = MAXPATHNAME;
-
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSRefMakePath(&_self->ob_itself,
-                                                path,
-                                                maxPathSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("s", path);
-       return _res;
-
-}
-
-static PyObject *FSRef_as_pathname(FSRefObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-
-#if TARGET_API_MAC_OSX
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _res = FSRef_FSRefMakePath(_self, _args);
-#else
-       char strbuf[1024];
-       OSErr err;
-       FSSpec fss;
-
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       if ( !PyMac_GetFSSpec((PyObject *)_self, &fss))
-               return NULL;
-       err = PyMac_GetFullPathname(&fss, strbuf, sizeof(strbuf));
-       if ( err ) {
-               PyMac_Error(err);
-               return NULL;
-       }
-       _res = PyString_FromString(strbuf);
-#endif
-       return _res;
-
-}
-
-static PyMethodDef FSRef_methods[] = {
-       {"FSMakeFSRefUnicode", (PyCFunction)FSRef_FSMakeFSRefUnicode, 1,
-        PyDoc_STR("(Buffer nameLength, TextEncoding textEncodingHint) -> (FSRef newRef)")},
-       {"FSCompareFSRefs", (PyCFunction)FSRef_FSCompareFSRefs, 1,
-        PyDoc_STR("(FSRef ref2) -> None")},
-       {"FSCreateFileUnicode", (PyCFunction)FSRef_FSCreateFileUnicode, 1,
-        PyDoc_STR("(Buffer nameLength, FSCatalogInfoBitmap whichInfo, FSCatalogInfo catalogInfo) -> (FSRef newRef, FSSpec newSpec)")},
-       {"FSCreateDirectoryUnicode", (PyCFunction)FSRef_FSCreateDirectoryUnicode, 1,
-        PyDoc_STR("(Buffer nameLength, FSCatalogInfoBitmap whichInfo, FSCatalogInfo catalogInfo) -> (FSRef newRef, FSSpec newSpec, UInt32 newDirID)")},
-       {"FSDeleteObject", (PyCFunction)FSRef_FSDeleteObject, 1,
-        PyDoc_STR("() -> None")},
-       {"FSMoveObject", (PyCFunction)FSRef_FSMoveObject, 1,
-        PyDoc_STR("(FSRef destDirectory) -> (FSRef newRef)")},
-       {"FSExchangeObjects", (PyCFunction)FSRef_FSExchangeObjects, 1,
-        PyDoc_STR("(FSRef destRef) -> None")},
-       {"FSRenameUnicode", (PyCFunction)FSRef_FSRenameUnicode, 1,
-        PyDoc_STR("(Buffer nameLength, TextEncoding textEncodingHint) -> (FSRef newRef)")},
-       {"FSGetCatalogInfo", (PyCFunction)FSRef_FSGetCatalogInfo, 1,
-        PyDoc_STR("(FSCatalogInfoBitmap whichInfo) -> (FSCatalogInfo catalogInfo, HFSUniStr255 outName, FSSpec fsSpec, FSRef parentRef)")},
-       {"FSSetCatalogInfo", (PyCFunction)FSRef_FSSetCatalogInfo, 1,
-        PyDoc_STR("(FSCatalogInfoBitmap whichInfo, FSCatalogInfo catalogInfo) -> None")},
-       {"FSCreateFork", (PyCFunction)FSRef_FSCreateFork, 1,
-        PyDoc_STR("(Buffer forkNameLength) -> None")},
-       {"FSDeleteFork", (PyCFunction)FSRef_FSDeleteFork, 1,
-        PyDoc_STR("(Buffer forkNameLength) -> None")},
-       {"FSOpenFork", (PyCFunction)FSRef_FSOpenFork, 1,
-        PyDoc_STR("(Buffer forkNameLength, SInt8 permissions) -> (SInt16 forkRefNum)")},
-
-#if TARGET_API_MAC_OSX
-       {"FNNotify", (PyCFunction)FSRef_FNNotify, 1,
-        PyDoc_STR("(FNMessage message, OptionBits flags) -> None")},
-#endif
-       {"FSNewAliasMinimal", (PyCFunction)FSRef_FSNewAliasMinimal, 1,
-        PyDoc_STR("() -> (AliasHandle inAlias)")},
-       {"FSIsAliasFile", (PyCFunction)FSRef_FSIsAliasFile, 1,
-        PyDoc_STR("() -> (Boolean aliasFileFlag, Boolean folderFlag)")},
-       {"FSRefMakePath", (PyCFunction)FSRef_FSRefMakePath, 1,
-        PyDoc_STR("() -> string")},
-       {"as_pathname", (PyCFunction)FSRef_as_pathname, 1,
-        PyDoc_STR("() -> string")},
-       {NULL, NULL, 0}
-};
-
-static PyObject *FSRef_get_data(FSRefObject *self, void *closure)
-{
-       return PyString_FromStringAndSize((char *)&self->ob_itself, sizeof(self->ob_itself));
-}
-
-#define FSRef_set_data NULL
-
-static PyGetSetDef FSRef_getsetlist[] = {
-       {"data", (getter)FSRef_get_data, (setter)FSRef_set_data, "Raw data of the FSRef object"},
-       {NULL, NULL, NULL, NULL},
-};
-
-
-#define FSRef_compare NULL
-
-#define FSRef_repr NULL
-
-#define FSRef_hash NULL
-static int FSRef_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
-       PyObject *v = NULL;
-       char *rawdata = NULL;
-       int rawdatalen = 0;
-       static char *kw[] = {"itself", "rawdata", 0};
-
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "|Os#", kw, &v, &rawdata, &rawdatalen))
-       return -1;
-       if (v && rawdata)
-       {
-               PyErr_SetString(PyExc_TypeError, "Only one of itself or rawdata may be specified");
-               return -1;
-       }
-       if (!v && !rawdata)
-       {
-               PyErr_SetString(PyExc_TypeError, "One of itself or rawdata must be specified");
-               return -1;
-       }
-       if (rawdata)
-       {
-               if (rawdatalen != sizeof(FSRef))
-               {
-                       PyErr_SetString(PyExc_TypeError, "FSRef rawdata incorrect size");
-                       return -1;
-               }
-               memcpy(&((FSRefObject *)self)->ob_itself, rawdata, rawdatalen);
-               return 0;
-       }
-       if (PyMac_GetFSRef(v, &((FSRefObject *)self)->ob_itself)) return 0;
-       return -1;
-}
-
-#define FSRef_tp_alloc PyType_GenericAlloc
-
-static PyObject *FSRef_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-       PyObject *self;
-
-       if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;
-       memset(&((FSRefObject *)self)->ob_itself, 0, sizeof(FSRef));
-       return self;
-}
-
-#define FSRef_tp_free PyObject_Del
-
-
-static PyTypeObject FSRef_Type = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
-       "Carbon.File.FSRef", /*tp_name*/
-       sizeof(FSRefObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) FSRef_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc)0, /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc) FSRef_compare, /*tp_compare*/
-       (reprfunc) FSRef_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) FSRef_hash, /*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_BASETYPE, /* tp_flags */
-       0, /*tp_doc*/
-       0, /*tp_traverse*/
-       0, /*tp_clear*/
-       0, /*tp_richcompare*/
-       0, /*tp_weaklistoffset*/
-       0, /*tp_iter*/
-       0, /*tp_iternext*/
-       FSRef_methods, /* tp_methods */
-       0, /*tp_members*/
-       FSRef_getsetlist, /*tp_getset*/
-       0, /*tp_base*/
-       0, /*tp_dict*/
-       0, /*tp_descr_get*/
-       0, /*tp_descr_set*/
-       0, /*tp_dictoffset*/
-       FSRef_tp_init, /* tp_init */
-       FSRef_tp_alloc, /* tp_alloc */
-       FSRef_tp_new, /* tp_new */
-       FSRef_tp_free, /* tp_free */
-};
-
-/* --------------------- End object type FSRef ---------------------- */
-
-
-static PyObject *File_UnmountVol(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str63 volName;
-       short vRefNum;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetStr255, volName,
-                             &vRefNum))
-               return NULL;
-       _err = UnmountVol(volName,
-                         vRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FlushVol(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str63 volName;
-       short vRefNum;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetStr255, volName,
-                             &vRefNum))
-               return NULL;
-       _err = FlushVol(volName,
-                       vRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_HSetVol(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str63 volName;
-       short vRefNum;
-       long dirID;
-       if (!PyArg_ParseTuple(_args, "O&hl",
-                             PyMac_GetStr255, volName,
-                             &vRefNum,
-                             &dirID))
-               return NULL;
-       _err = HSetVol(volName,
-                      vRefNum,
-                      dirID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FSClose(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _err = FSClose(refNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_Allocate(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       long count;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _err = Allocate(refNum,
-                       &count);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            count);
-       return _res;
-}
-
-static PyObject *File_GetEOF(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       long logEOF;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _err = GetEOF(refNum,
-                     &logEOF);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            logEOF);
-       return _res;
-}
-
-static PyObject *File_SetEOF(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       long logEOF;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &refNum,
-                             &logEOF))
-               return NULL;
-       _err = SetEOF(refNum,
-                     logEOF);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_GetFPos(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       long filePos;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _err = GetFPos(refNum,
-                      &filePos);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            filePos);
-       return _res;
-}
-
-static PyObject *File_SetFPos(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       short posMode;
-       long posOff;
-       if (!PyArg_ParseTuple(_args, "hhl",
-                             &refNum,
-                             &posMode,
-                             &posOff))
-               return NULL;
-       _err = SetFPos(refNum,
-                      posMode,
-                      posOff);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_GetVRefNum(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short fileRefNum;
-       short vRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &fileRefNum))
-               return NULL;
-       _err = GetVRefNum(fileRefNum,
-                         &vRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            vRefNum);
-       return _res;
-}
-
-static PyObject *File_HGetVol(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       StringPtr volName;
-       short vRefNum;
-       long dirID;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, &volName))
-               return NULL;
-       _err = HGetVol(volName,
-                      &vRefNum,
-                      &dirID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hl",
-                            vRefNum,
-                            dirID);
-       return _res;
-}
-
-static PyObject *File_HOpen(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       SInt8 permission;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "hlO&b",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName,
-                             &permission))
-               return NULL;
-       _err = HOpen(vRefNum,
-                    dirID,
-                    fileName,
-                    permission,
-                    &refNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            refNum);
-       return _res;
-}
-
-static PyObject *File_HOpenDF(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       SInt8 permission;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "hlO&b",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName,
-                             &permission))
-               return NULL;
-       _err = HOpenDF(vRefNum,
-                      dirID,
-                      fileName,
-                      permission,
-                      &refNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            refNum);
-       return _res;
-}
-
-static PyObject *File_HOpenRF(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       SInt8 permission;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "hlO&b",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName,
-                             &permission))
-               return NULL;
-       _err = HOpenRF(vRefNum,
-                      dirID,
-                      fileName,
-                      permission,
-                      &refNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            refNum);
-       return _res;
-}
-
-static PyObject *File_AllocContig(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refNum;
-       long count;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _err = AllocContig(refNum,
-                          &count);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            count);
-       return _res;
-}
-
-static PyObject *File_HCreate(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       OSType creator;
-       OSType fileType;
-       if (!PyArg_ParseTuple(_args, "hlO&O&O&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName,
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &fileType))
-               return NULL;
-       _err = HCreate(vRefNum,
-                      dirID,
-                      fileName,
-                      creator,
-                      fileType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_DirCreate(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long parentDirID;
-       Str255 directoryName;
-       long createdDirID;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &parentDirID,
-                             PyMac_GetStr255, directoryName))
-               return NULL;
-       _err = DirCreate(vRefNum,
-                        parentDirID,
-                        directoryName,
-                        &createdDirID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            createdDirID);
-       return _res;
-}
-
-static PyObject *File_HDelete(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       _err = HDelete(vRefNum,
-                      dirID,
-                      fileName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_HGetFInfo(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       FInfo fndrInfo;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       _err = HGetFInfo(vRefNum,
-                        dirID,
-                        fileName,
-                        &fndrInfo);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FInfo_New, &fndrInfo);
-       return _res;
-}
-
-static PyObject *File_HSetFInfo(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       FInfo fndrInfo;
-       if (!PyArg_ParseTuple(_args, "hlO&O&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName,
-                             FInfo_Convert, &fndrInfo))
-               return NULL;
-       _err = HSetFInfo(vRefNum,
-                        dirID,
-                        fileName,
-                        &fndrInfo);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_HSetFLock(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       _err = HSetFLock(vRefNum,
-                        dirID,
-                        fileName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_HRstFLock(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       _err = HRstFLock(vRefNum,
-                        dirID,
-                        fileName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_HRename(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 oldName;
-       Str255 newName;
-       if (!PyArg_ParseTuple(_args, "hlO&O&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, oldName,
-                             PyMac_GetStr255, newName))
-               return NULL;
-       _err = HRename(vRefNum,
-                      dirID,
-                      oldName,
-                      newName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_CatMove(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 oldName;
-       long newDirID;
-       Str255 newName;
-       if (!PyArg_ParseTuple(_args, "hlO&lO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, oldName,
-                             &newDirID,
-                             PyMac_GetStr255, newName))
-               return NULL;
-       _err = CatMove(vRefNum,
-                      dirID,
-                      oldName,
-                      newDirID,
-                      newName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FSMakeFSSpec(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       FSSpec spec;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       _err = FSMakeFSSpec(vRefNum,
-                           dirID,
-                           fileName,
-                           &spec);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            FSSpec_New, &spec);
-       return _res;
-}
-
-static PyObject *File_FSGetForkPosition(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       SInt64 position;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &forkRefNum))
-               return NULL;
-       _err = FSGetForkPosition(forkRefNum,
-                                &position);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("L",
-                            position);
-       return _res;
-}
-
-static PyObject *File_FSSetForkPosition(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       UInt16 positionMode;
-       SInt64 positionOffset;
-       if (!PyArg_ParseTuple(_args, "hHL",
-                             &forkRefNum,
-                             &positionMode,
-                             &positionOffset))
-               return NULL;
-       _err = FSSetForkPosition(forkRefNum,
-                                positionMode,
-                                positionOffset);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FSGetForkSize(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       SInt64 forkSize;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &forkRefNum))
-               return NULL;
-       _err = FSGetForkSize(forkRefNum,
-                            &forkSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("L",
-                            forkSize);
-       return _res;
-}
-
-static PyObject *File_FSSetForkSize(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       UInt16 positionMode;
-       SInt64 positionOffset;
-       if (!PyArg_ParseTuple(_args, "hHL",
-                             &forkRefNum,
-                             &positionMode,
-                             &positionOffset))
-               return NULL;
-       _err = FSSetForkSize(forkRefNum,
-                            positionMode,
-                            positionOffset);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FSAllocateFork(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       FSAllocationFlags flags;
-       UInt16 positionMode;
-       SInt64 positionOffset;
-       UInt64 requestCount;
-       UInt64 actualCount;
-       if (!PyArg_ParseTuple(_args, "hHHLL",
-                             &forkRefNum,
-                             &flags,
-                             &positionMode,
-                             &positionOffset,
-                             &requestCount))
-               return NULL;
-       _err = FSAllocateFork(forkRefNum,
-                             flags,
-                             positionMode,
-                             positionOffset,
-                             requestCount,
-                             &actualCount);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("L",
-                            actualCount);
-       return _res;
-}
-
-static PyObject *File_FSFlushFork(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &forkRefNum))
-               return NULL;
-       _err = FSFlushFork(forkRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FSCloseFork(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 forkRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &forkRefNum))
-               return NULL;
-       _err = FSCloseFork(forkRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *File_FSGetDataForkName(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       HFSUniStr255 dataForkName;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSGetDataForkName(&dataForkName);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildHFSUniStr255, &dataForkName);
-       return _res;
-}
-
-static PyObject *File_FSGetResourceForkName(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       HFSUniStr255 resourceForkName;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FSGetResourceForkName(&resourceForkName);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildHFSUniStr255, &resourceForkName);
-       return _res;
-}
-
-static PyObject *File_FSPathMakeRef(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       UInt8 * path;
-       FSRef ref;
-       Boolean isDirectory;
-       if (!PyArg_ParseTuple(_args, "s",
-                             &path))
-               return NULL;
-       _err = FSPathMakeRef(path,
-                            &ref,
-                            &isDirectory);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            FSRef_New, &ref,
-                            isDirectory);
-       return _res;
-}
-
-#if TARGET_API_MAC_OSX
-
-static PyObject *File_FNNotifyByPath(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       UInt8 * path;
-       FNMessage message;
-       OptionBits flags;
-       if (!PyArg_ParseTuple(_args, "sll",
-                             &path,
-                             &message,
-                             &flags))
-               return NULL;
-       _err = FNNotifyByPath(path,
-                             message,
-                             flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_OSX
-
-static PyObject *File_FNNotifyAll(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       FNMessage message;
-       OptionBits flags;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &message,
-                             &flags))
-               return NULL;
-       _err = FNNotifyAll(message,
-                          flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *File_NewAlias(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fromFile__buf__;
-       FSSpec *fromFile = &fromFile__buf__;
-       FSSpec target;
-       AliasHandle alias;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             myPyMac_GetOptFSSpecPtr, &fromFile,
-                             FSSpec_Convert, &target))
-               return NULL;
-       _err = NewAlias(fromFile,
-                       &target,
-                       &alias);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            Alias_New, alias);
-       return _res;
-}
-
-static PyObject *File_NewAliasMinimalFromFullPath(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       char *fullPath__in__;
-       int fullPath__len__;
-       int fullPath__in_len__;
-       Str32 zoneName;
-       Str31 serverName;
-       AliasHandle alias;
-       if (!PyArg_ParseTuple(_args, "s#O&O&",
-                             &fullPath__in__, &fullPath__in_len__,
-                             PyMac_GetStr255, zoneName,
-                             PyMac_GetStr255, serverName))
-               return NULL;
-       fullPath__len__ = fullPath__in_len__;
-       _err = NewAliasMinimalFromFullPath(fullPath__len__, fullPath__in__,
-                                          zoneName,
-                                          serverName,
-                                          &alias);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            Alias_New, alias);
-       return _res;
-}
-
-static PyObject *File_ResolveAliasFile(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec theSpec;
-       Boolean resolveAliasChains;
-       Boolean targetIsFolder;
-       Boolean wasAliased;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             FSSpec_Convert, &theSpec,
-                             &resolveAliasChains))
-               return NULL;
-       _err = ResolveAliasFile(&theSpec,
-                               resolveAliasChains,
-                               &targetIsFolder,
-                               &wasAliased);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&bb",
-                            FSSpec_New, &theSpec,
-                            targetIsFolder,
-                            wasAliased);
-       return _res;
-}
-
-static PyObject *File_ResolveAliasFileWithMountFlags(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec theSpec;
-       Boolean resolveAliasChains;
-       Boolean targetIsFolder;
-       Boolean wasAliased;
-       unsigned long mountFlags;
-       if (!PyArg_ParseTuple(_args, "O&bl",
-                             FSSpec_Convert, &theSpec,
-                             &resolveAliasChains,
-                             &mountFlags))
-               return NULL;
-       _err = ResolveAliasFileWithMountFlags(&theSpec,
-                                             resolveAliasChains,
-                                             &targetIsFolder,
-                                             &wasAliased,
-                                             mountFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&bb",
-                            FSSpec_New, &theSpec,
-                            targetIsFolder,
-                            wasAliased);
-       return _res;
-}
-
-static PyObject *File_UpdateAlias(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fromFile__buf__;
-       FSSpec *fromFile = &fromFile__buf__;
-       FSSpec target;
-       AliasHandle alias;
-       Boolean wasChanged;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             myPyMac_GetOptFSSpecPtr, &fromFile,
-                             FSSpec_Convert, &target,
-                             Alias_Convert, &alias))
-               return NULL;
-       _err = UpdateAlias(fromFile,
-                          &target,
-                          alias,
-                          &wasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *File_ResolveAliasFileWithMountFlagsNoUI(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec theSpec;
-       Boolean resolveAliasChains;
-       Boolean targetIsFolder;
-       Boolean wasAliased;
-       unsigned long mountFlags;
-       if (!PyArg_ParseTuple(_args, "O&bl",
-                             FSSpec_Convert, &theSpec,
-                             &resolveAliasChains,
-                             &mountFlags))
-               return NULL;
-       _err = ResolveAliasFileWithMountFlagsNoUI(&theSpec,
-                                                 resolveAliasChains,
-                                                 &targetIsFolder,
-                                                 &wasAliased,
-                                                 mountFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&bb",
-                            FSSpec_New, &theSpec,
-                            targetIsFolder,
-                            wasAliased);
-       return _res;
-}
-
-static PyObject *File_FSNewAlias(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef fromFile__buf__;
-       FSRef *fromFile = &fromFile__buf__;
-       FSRef target;
-       AliasHandle inAlias;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             myPyMac_GetOptFSRefPtr, &fromFile,
-                             FSRef_Convert, &target))
-               return NULL;
-       _err = FSNewAlias(fromFile,
-                         &target,
-                         &inAlias);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            Alias_New, inAlias);
-       return _res;
-}
-
-static PyObject *File_FSResolveAliasFileWithMountFlags(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef theRef;
-       Boolean resolveAliasChains;
-       Boolean targetIsFolder;
-       Boolean wasAliased;
-       unsigned long mountFlags;
-       if (!PyArg_ParseTuple(_args, "O&bl",
-                             FSRef_Convert, &theRef,
-                             &resolveAliasChains,
-                             &mountFlags))
-               return NULL;
-       _err = FSResolveAliasFileWithMountFlags(&theRef,
-                                               resolveAliasChains,
-                                               &targetIsFolder,
-                                               &wasAliased,
-                                               mountFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&bb",
-                            FSRef_New, &theRef,
-                            targetIsFolder,
-                            wasAliased);
-       return _res;
-}
-
-static PyObject *File_FSResolveAliasFile(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef theRef;
-       Boolean resolveAliasChains;
-       Boolean targetIsFolder;
-       Boolean wasAliased;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             FSRef_Convert, &theRef,
-                             &resolveAliasChains))
-               return NULL;
-       _err = FSResolveAliasFile(&theRef,
-                                 resolveAliasChains,
-                                 &targetIsFolder,
-                                 &wasAliased);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&bb",
-                            FSRef_New, &theRef,
-                            targetIsFolder,
-                            wasAliased);
-       return _res;
-}
-
-static PyObject *File_FSUpdateAlias(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSRef fromFile__buf__;
-       FSRef *fromFile = &fromFile__buf__;
-       FSRef target;
-       AliasHandle alias;
-       Boolean wasChanged;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             myPyMac_GetOptFSRefPtr, &fromFile,
-                             FSRef_Convert, &target,
-                             Alias_Convert, &alias))
-               return NULL;
-       _err = FSUpdateAlias(fromFile,
-                            &target,
-                            alias,
-                            &wasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            wasChanged);
-       return _res;
-}
-
-static PyObject *File_pathname(PyObject *_self, PyObject *_args)
-{
-       PyObject *_res = NULL;
-
-       PyObject *obj;
-
-       if (!PyArg_ParseTuple(_args, "O", &obj))
-               return NULL;
-       if (PyString_Check(obj)) {
-               Py_INCREF(obj);
-               return obj;
-       }
-       if (PyUnicode_Check(obj))
-               return PyUnicode_AsEncodedString(obj, "utf8", "strict");
-       _res = PyObject_CallMethod(obj, "as_pathname", NULL);
-       return _res;
-
-}
-
-static PyMethodDef File_methods[] = {
-       {"UnmountVol", (PyCFunction)File_UnmountVol, 1,
-        PyDoc_STR("(Str63 volName, short vRefNum) -> None")},
-       {"FlushVol", (PyCFunction)File_FlushVol, 1,
-        PyDoc_STR("(Str63 volName, short vRefNum) -> None")},
-       {"HSetVol", (PyCFunction)File_HSetVol, 1,
-        PyDoc_STR("(Str63 volName, short vRefNum, long dirID) -> None")},
-       {"FSClose", (PyCFunction)File_FSClose, 1,
-        PyDoc_STR("(short refNum) -> None")},
-       {"Allocate", (PyCFunction)File_Allocate, 1,
-        PyDoc_STR("(short refNum) -> (long count)")},
-       {"GetEOF", (PyCFunction)File_GetEOF, 1,
-        PyDoc_STR("(short refNum) -> (long logEOF)")},
-       {"SetEOF", (PyCFunction)File_SetEOF, 1,
-        PyDoc_STR("(short refNum, long logEOF) -> None")},
-       {"GetFPos", (PyCFunction)File_GetFPos, 1,
-        PyDoc_STR("(short refNum) -> (long filePos)")},
-       {"SetFPos", (PyCFunction)File_SetFPos, 1,
-        PyDoc_STR("(short refNum, short posMode, long posOff) -> None")},
-       {"GetVRefNum", (PyCFunction)File_GetVRefNum, 1,
-        PyDoc_STR("(short fileRefNum) -> (short vRefNum)")},
-       {"HGetVol", (PyCFunction)File_HGetVol, 1,
-        PyDoc_STR("(StringPtr volName) -> (short vRefNum, long dirID)")},
-       {"HOpen", (PyCFunction)File_HOpen, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName, SInt8 permission) -> (short refNum)")},
-       {"HOpenDF", (PyCFunction)File_HOpenDF, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName, SInt8 permission) -> (short refNum)")},
-       {"HOpenRF", (PyCFunction)File_HOpenRF, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName, SInt8 permission) -> (short refNum)")},
-       {"AllocContig", (PyCFunction)File_AllocContig, 1,
-        PyDoc_STR("(short refNum) -> (long count)")},
-       {"HCreate", (PyCFunction)File_HCreate, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName, OSType creator, OSType fileType) -> None")},
-       {"DirCreate", (PyCFunction)File_DirCreate, 1,
-        PyDoc_STR("(short vRefNum, long parentDirID, Str255 directoryName) -> (long createdDirID)")},
-       {"HDelete", (PyCFunction)File_HDelete, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName) -> None")},
-       {"HGetFInfo", (PyCFunction)File_HGetFInfo, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName) -> (FInfo fndrInfo)")},
-       {"HSetFInfo", (PyCFunction)File_HSetFInfo, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName, FInfo fndrInfo) -> None")},
-       {"HSetFLock", (PyCFunction)File_HSetFLock, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName) -> None")},
-       {"HRstFLock", (PyCFunction)File_HRstFLock, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName) -> None")},
-       {"HRename", (PyCFunction)File_HRename, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 oldName, Str255 newName) -> None")},
-       {"CatMove", (PyCFunction)File_CatMove, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 oldName, long newDirID, Str255 newName) -> None")},
-       {"FSMakeFSSpec", (PyCFunction)File_FSMakeFSSpec, 1,
-        PyDoc_STR("(short vRefNum, long dirID, Str255 fileName) -> (FSSpec spec)")},
-       {"FSGetForkPosition", (PyCFunction)File_FSGetForkPosition, 1,
-        PyDoc_STR("(SInt16 forkRefNum) -> (SInt64 position)")},
-       {"FSSetForkPosition", (PyCFunction)File_FSSetForkPosition, 1,
-        PyDoc_STR("(SInt16 forkRefNum, UInt16 positionMode, SInt64 positionOffset) -> None")},
-       {"FSGetForkSize", (PyCFunction)File_FSGetForkSize, 1,
-        PyDoc_STR("(SInt16 forkRefNum) -> (SInt64 forkSize)")},
-       {"FSSetForkSize", (PyCFunction)File_FSSetForkSize, 1,
-        PyDoc_STR("(SInt16 forkRefNum, UInt16 positionMode, SInt64 positionOffset) -> None")},
-       {"FSAllocateFork", (PyCFunction)File_FSAllocateFork, 1,
-        PyDoc_STR("(SInt16 forkRefNum, FSAllocationFlags flags, UInt16 positionMode, SInt64 positionOffset, UInt64 requestCount) -> (UInt64 actualCount)")},
-       {"FSFlushFork", (PyCFunction)File_FSFlushFork, 1,
-        PyDoc_STR("(SInt16 forkRefNum) -> None")},
-       {"FSCloseFork", (PyCFunction)File_FSCloseFork, 1,
-        PyDoc_STR("(SInt16 forkRefNum) -> None")},
-       {"FSGetDataForkName", (PyCFunction)File_FSGetDataForkName, 1,
-        PyDoc_STR("() -> (HFSUniStr255 dataForkName)")},
-       {"FSGetResourceForkName", (PyCFunction)File_FSGetResourceForkName, 1,
-        PyDoc_STR("() -> (HFSUniStr255 resourceForkName)")},
-       {"FSPathMakeRef", (PyCFunction)File_FSPathMakeRef, 1,
-        PyDoc_STR("(UInt8 * path) -> (FSRef ref, Boolean isDirectory)")},
-
-#if TARGET_API_MAC_OSX
-       {"FNNotifyByPath", (PyCFunction)File_FNNotifyByPath, 1,
-        PyDoc_STR("(UInt8 * path, FNMessage message, OptionBits flags) -> None")},
-#endif
-
-#if TARGET_API_MAC_OSX
-       {"FNNotifyAll", (PyCFunction)File_FNNotifyAll, 1,
-        PyDoc_STR("(FNMessage message, OptionBits flags) -> None")},
-#endif
-       {"NewAlias", (PyCFunction)File_NewAlias, 1,
-        PyDoc_STR("(FSSpec fromFile, FSSpec target) -> (AliasHandle alias)")},
-       {"NewAliasMinimalFromFullPath", (PyCFunction)File_NewAliasMinimalFromFullPath, 1,
-        PyDoc_STR("(Buffer fullPath, Str32 zoneName, Str31 serverName) -> (AliasHandle alias)")},
-       {"ResolveAliasFile", (PyCFunction)File_ResolveAliasFile, 1,
-        PyDoc_STR("(FSSpec theSpec, Boolean resolveAliasChains) -> (FSSpec theSpec, Boolean targetIsFolder, Boolean wasAliased)")},
-       {"ResolveAliasFileWithMountFlags", (PyCFunction)File_ResolveAliasFileWithMountFlags, 1,
-        PyDoc_STR("(FSSpec theSpec, Boolean resolveAliasChains, unsigned long mountFlags) -> (FSSpec theSpec, Boolean targetIsFolder, Boolean wasAliased)")},
-       {"UpdateAlias", (PyCFunction)File_UpdateAlias, 1,
-        PyDoc_STR("(FSSpec fromFile, FSSpec target, AliasHandle alias) -> (Boolean wasChanged)")},
-       {"ResolveAliasFileWithMountFlagsNoUI", (PyCFunction)File_ResolveAliasFileWithMountFlagsNoUI, 1,
-        PyDoc_STR("(FSSpec theSpec, Boolean resolveAliasChains, unsigned long mountFlags) -> (FSSpec theSpec, Boolean targetIsFolder, Boolean wasAliased)")},
-       {"FSNewAlias", (PyCFunction)File_FSNewAlias, 1,
-        PyDoc_STR("(FSRef fromFile, FSRef target) -> (AliasHandle inAlias)")},
-       {"FSResolveAliasFileWithMountFlags", (PyCFunction)File_FSResolveAliasFileWithMountFlags, 1,
-        PyDoc_STR("(FSRef theRef, Boolean resolveAliasChains, unsigned long mountFlags) -> (FSRef theRef, Boolean targetIsFolder, Boolean wasAliased)")},
-       {"FSResolveAliasFile", (PyCFunction)File_FSResolveAliasFile, 1,
-        PyDoc_STR("(FSRef theRef, Boolean resolveAliasChains) -> (FSRef theRef, Boolean targetIsFolder, Boolean wasAliased)")},
-       {"FSUpdateAlias", (PyCFunction)File_FSUpdateAlias, 1,
-        PyDoc_STR("(FSRef fromFile, FSRef target, AliasHandle alias) -> (Boolean wasChanged)")},
-       {"pathname", (PyCFunction)File_pathname, 1,
-        PyDoc_STR("(str|unicode|FSSpec|FSref) -> pathname")},
-       {NULL, NULL, 0}
-};
-
-
-
-int
-PyMac_GetFSSpec(PyObject *v, FSSpec *spec)
-{
-       Str255 path;
-       short refnum;
-       long parid;
-       OSErr err;
-       FSRef fsr;
-
-       if (FSSpec_Check(v)) {
-               *spec = ((FSSpecObject *)v)->ob_itself;
-               return 1;
-       }
-
-       if (PyArg_Parse(v, "(hlO&)",
-                                               &refnum, &parid, PyMac_GetStr255, &path)) {
-               err = FSMakeFSSpec(refnum, parid, path, spec);
-               if ( err && err != fnfErr ) {
-                       PyMac_Error(err);
-                       return 0;
-               }
-               return 1;
-       }
-       PyErr_Clear();
-#if !TARGET_API_MAC_OSX
-       /* On OS9 we now try a pathname */
-       if ( PyString_Check(v) ) {
-               /* It's a pathname */
-               if( !PyArg_Parse(v, "O&", PyMac_GetStr255, &path) )
-                       return 0;
-               refnum = 0; /* XXXX Should get CurWD here?? */
-               parid = 0;
-               err = FSMakeFSSpec(refnum, parid, path, spec);
-               if ( err && err != fnfErr ) {
-                       PyMac_Error(err);
-                       return 0;
-               }
-               return 1;
-       }
-       PyErr_Clear();
-#endif
-       /* Otherwise we try to go via an FSRef. On OSX we go all the way,
-       ** on OS9 we accept only a real FSRef object
-       */
-#if TARGET_API_MAC_OSX
-       if ( PyMac_GetFSRef(v, &fsr) ) {
-#else
-       if (FSRef_Check(v)) {
-               fsr = ((FSRefObject *)v)->ob_itself;
-#endif 
-               err = FSGetCatalogInfo(&fsr, kFSCatInfoNone, NULL, NULL, spec, NULL);
-               if (err != noErr) {
-                       PyMac_Error(err);
-                       return 0;
-               }
-               return 1;
-       }
-#if !TARGET_API_MAC_OSX
-       PyErr_SetString(PyExc_TypeError, "FSSpec, FSRef, pathname or (refnum, parid, path) required");
-#endif
-       return 0;
-}
-
-int
-PyMac_GetFSRef(PyObject *v, FSRef *fsr)
-{
-       OSStatus err;
-       FSSpec fss;
-       
-       if (FSRef_Check(v)) {
-               *fsr = ((FSRefObject *)v)->ob_itself;
-               return 1;
-       }
-
-#if TARGET_API_MAC_OSX
-       /* On OSX we now try a pathname */
-       if ( PyString_Check(v) || PyUnicode_Check(v)) {
-               char *path = NULL;
-               if (!PyArg_Parse(v, "et", Py_FileSystemDefaultEncoding, &path))
-                       return 0;
-               if ( (err=FSPathMakeRef((unsigned char *)path, fsr, NULL)) ) {
-                       PyMac_Error(err);
-                       return 0;
-               }
-               return 1;
-       }
-       /* XXXX Should try unicode here too */
-#endif
-       /* Otherwise we try to go via an FSSpec */
-#if TARGET_API_MAC_OSX
-       if (FSSpec_Check(v)) {
-               fss = ((FSSpecObject *)v)->ob_itself;
-#else
-       if (PyMac_GetFSSpec(v, &fss)) {
-#endif
-               if ((err=FSpMakeFSRef(&fss, fsr)) == 0)
-                       return 1;
-               PyMac_Error(err);
-               return 0;
-       }
-       PyErr_SetString(PyExc_TypeError, "FSRef, FSSpec or pathname required");
-       return 0;
-}
-
-extern PyObject *
-PyMac_BuildFSSpec(FSSpec *spec)
-{
-       return FSSpec_New(spec);
-}
-
-extern PyObject *
-PyMac_BuildFSRef(FSRef *spec)
-{
-       return FSRef_New(spec);
-}
-
-
-void init_File(void)
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-       PyMac_INIT_TOOLBOX_OBJECT_NEW(FSSpec *, PyMac_BuildFSSpec);
-       PyMac_INIT_TOOLBOX_OBJECT_NEW(FSRef *, PyMac_BuildFSRef);
-       PyMac_INIT_TOOLBOX_OBJECT_CONVERT(FSSpec, PyMac_GetFSSpec);
-       PyMac_INIT_TOOLBOX_OBJECT_CONVERT(FSRef, PyMac_GetFSRef);
-
-
-       m = Py_InitModule("_File", File_methods);
-       d = PyModule_GetDict(m);
-       File_Error = PyMac_GetOSErrException();
-       if (File_Error == NULL ||
-           PyDict_SetItemString(d, "Error", File_Error) != 0)
-               return;
-       FSCatalogInfo_Type.ob_type = &PyType_Type;
-       if (PyType_Ready(&FSCatalogInfo_Type) < 0) return;
-       Py_INCREF(&FSCatalogInfo_Type);
-       PyModule_AddObject(m, "FSCatalogInfo", (PyObject *)&FSCatalogInfo_Type);
-       /* Backward-compatible name */
-       Py_INCREF(&FSCatalogInfo_Type);
-       PyModule_AddObject(m, "FSCatalogInfoType", (PyObject *)&FSCatalogInfo_Type);
-       FInfo_Type.ob_type = &PyType_Type;
-       if (PyType_Ready(&FInfo_Type) < 0) return;
-       Py_INCREF(&FInfo_Type);
-       PyModule_AddObject(m, "FInfo", (PyObject *)&FInfo_Type);
-       /* Backward-compatible name */
-       Py_INCREF(&FInfo_Type);
-       PyModule_AddObject(m, "FInfoType", (PyObject *)&FInfo_Type);
-       Alias_Type.ob_type = &PyType_Type;
-       if (PyType_Ready(&Alias_Type) < 0) return;
-       Py_INCREF(&Alias_Type);
-       PyModule_AddObject(m, "Alias", (PyObject *)&Alias_Type);
-       /* Backward-compatible name */
-       Py_INCREF(&Alias_Type);
-       PyModule_AddObject(m, "AliasType", (PyObject *)&Alias_Type);
-       FSSpec_Type.ob_type = &PyType_Type;
-       if (PyType_Ready(&FSSpec_Type) < 0) return;
-       Py_INCREF(&FSSpec_Type);
-       PyModule_AddObject(m, "FSSpec", (PyObject *)&FSSpec_Type);
-       /* Backward-compatible name */
-       Py_INCREF(&FSSpec_Type);
-       PyModule_AddObject(m, "FSSpecType", (PyObject *)&FSSpec_Type);
-       FSRef_Type.ob_type = &PyType_Type;
-       if (PyType_Ready(&FSRef_Type) < 0) return;
-       Py_INCREF(&FSRef_Type);
-       PyModule_AddObject(m, "FSRef", (PyObject *)&FSRef_Type);
-       /* Backward-compatible name */
-       Py_INCREF(&FSRef_Type);
-       PyModule_AddObject(m, "FSRefType", (PyObject *)&FSRef_Type);
-}
-
-/* ======================== End module _File ======================== */
-
diff --git a/Cython/Mac/__init__.py b/Cython/Mac/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/Cython/Unix/LinuxSystem.py b/Cython/Unix/LinuxSystem.py
deleted file mode 100644 (file)
index 17b2d33..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-#   Pyrex - Linux system interface
-#
-
-verbose = 0
-gcc_pendantic = True
-gcc_warnings_are_errors = True
-gcc_all_warnings = True
-
-import os, sys
-from Cython.Utils import replace_suffix
-from Cython.Compiler.Errors import PyrexError
-
-version = "%s.%s" % sys.version_info[:2]
-py_include_dirs = [
-    "%s/include/python%s" % (sys.prefix, version)
-]
-
-compilers = ["gcc", "g++"]
-compiler_options = \
-    "-g -c -fno-strict-aliasing -Wno-long-double -no-cpp-precomp " \
-    "-mno-fused-madd -fno-common -dynamic " \
-    .split()
-if gcc_pendantic:
-    compiler_options.extend(["-pedantic", "-Wno-long-long"])
-if gcc_warnings_are_errors:
-    compiler_options.append("-Werror")
-if gcc_all_warnings:
-    compiler_options.append("-Wall")
-    compiler_options.append("-Wno-unused-function")
-
-linkers = ["gcc", "g++"]
-linker_options = \
-    "-shared" \
-    .split()
-
-class CCompilerError(PyrexError):
-    pass
-
-def c_compile(c_file, verbose_flag = 0, cplus = 0, obj_suffix = ".o"):
-    #  Compile the given C source file to produce
-    #  an object file. Returns the pathname of the
-    #  resulting file.
-    c_file = os.path.join(os.getcwd(), c_file)
-    o_file = replace_suffix(c_file, obj_suffix)
-    include_options = []
-    for dir in py_include_dirs:
-        include_options.append("-I%s" % dir)
-    compiler = compilers[bool(cplus)]
-    args = [compiler] + compiler_options + include_options + [c_file, "-o", o_file]
-    if verbose_flag or verbose:
-        print(" ".join(args))
-    #print compiler, args ###
-    status = os.spawnvp(os.P_WAIT, compiler, args)
-    if status != 0:
-        raise CCompilerError("C compiler returned status %s" % status)
-    return o_file
-
-def c_link(obj_file, verbose_flag = 0, extra_objects = [], cplus = 0):
-    return c_link_list([obj_file] + extra_objects, verbose_flag, cplus)
-
-def c_link_list(obj_files, verbose_flag = 0, cplus = 0):
-    #  Link the given object files into a dynamically
-    #  loadable extension file. Returns the pathname
-    #  of the resulting file.
-    out_file = replace_suffix(obj_files[0], ".so")
-    linker = linkers[bool(cplus)]
-    args = [linker] + linker_options + obj_files + ["-o", out_file]
-    if verbose_flag or verbose:
-        print(" ".join(args))
-    status = os.spawnvp(os.P_WAIT, linker, args)
-    if status != 0:
-        raise CCompilerError("Linker returned status %s" % status)
-    return out_file
diff --git a/Cython/Unix/__init__.py b/Cython/Unix/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
index 90c125f4ee001bc8032b8ce7742cd96b25466c94..d2a260a6ae368796b87dc1835982e348a83af1f6 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -172,8 +172,6 @@ setup(
     'Cython.Compiler',
     'Cython.Runtime',
     'Cython.Distutils',
-    'Cython.Mac',
-    'Cython.Unix',
     'Cython.Plex',
 
     'Cython.Tests',