[Python-3000-checkins] r55724 - in python/branches/p3yk: Doc/mac/undoc.tex Lib/plat-mac/cfmfile.py Misc/NEWS

brett.cannon python-3000-checkins at python.org
Fri Jun 1 04:32:46 CEST 2007


Author: brett.cannon
Date: Fri Jun  1 04:32:41 2007
New Revision: 55724

Removed:
   python/branches/p3yk/Lib/plat-mac/cfmfile.py
Modified:
   python/branches/p3yk/Doc/mac/undoc.tex
   python/branches/p3yk/Misc/NEWS
Log:
Remove the cfmfile.


Modified: python/branches/p3yk/Doc/mac/undoc.tex
==============================================================================
--- python/branches/p3yk/Doc/mac/undoc.tex	(original)
+++ python/branches/p3yk/Doc/mac/undoc.tex	Fri Jun  1 04:32:41 2007
@@ -23,18 +23,6 @@
 
 \deprecated{2.4}{}
 
-\section{\module{cfmfile} --- Code Fragment Resource module}
-\declaremodule{standard}{cfmfile}
-  \platform{Mac}
-\modulesynopsis{Code Fragment Resource module.}
-
-\module{cfmfile} is a module that understands Code Fragments and the
-accompanying ``cfrg'' resources. It can parse them and merge them, and is
-used by BuildApplication to combine all plugin modules to a single
-executable.
-
-\deprecated{2.4}{}
-
 \section{\module{icopen} --- Internet Config replacement for \method{open()}}
 \declaremodule{standard}{icopen}
   \platform{Mac}

Deleted: /python/branches/p3yk/Lib/plat-mac/cfmfile.py
==============================================================================
--- /python/branches/p3yk/Lib/plat-mac/cfmfile.py	Fri Jun  1 04:32:41 2007
+++ (empty file)
@@ -1,183 +0,0 @@
-"""codefragments.py -- wrapper to modify code fragments."""
-
-# (c) 1998, Just van Rossum, Letterror
-
-__version__ = "0.8b3"
-__author__ = "jvr"
-
-import Carbon.File
-import struct
-from Carbon import Res
-import os
-import sys
-
-DEBUG = 0
-
-error = "cfm.error"
-
-BUFSIZE = 0x80000
-
-def mergecfmfiles(srclist, dst, architecture = 'fat'):
-    """Merge all files in srclist into a new file dst.
-
-    If architecture is given, only code fragments of that type will be used:
-    "pwpc" for PPC, "m68k" for cfm68k. This does not work for "classic"
-    68k code, since it does not use code fragments to begin with.
-    If architecture is None, all fragments will be used, enabling FAT binaries.
-    """
-
-    srclist = list(srclist)
-    for i in range(len(srclist)):
-        srclist[i] = Carbon.File.pathname(srclist[i])
-    dst = Carbon.File.pathname(dst)
-
-    dstfile = open(dst, "wb")
-    rf = Res.FSpOpenResFile(dst, 3)
-    try:
-        dstcfrg = CfrgResource()
-        for src in srclist:
-            srccfrg = CfrgResource(src)
-            for frag in srccfrg.fragments:
-                if frag.architecture == 'pwpc' and architecture == 'm68k':
-                    continue
-                if frag.architecture == 'm68k' and architecture == 'pwpc':
-                    continue
-                dstcfrg.append(frag)
-
-                frag.copydata(dstfile)
-
-        cfrgres = Res.Resource(dstcfrg.build())
-        Res.UseResFile(rf)
-        cfrgres.AddResource('cfrg', 0, "")
-    finally:
-        dstfile.close()
-        rf = Res.CloseResFile(rf)
-
-
-class CfrgResource:
-
-    def __init__(self, path = None):
-        self.version = 1
-        self.fragments = []
-        self.path = path
-        if path is not None and os.path.exists(path):
-            currentresref = Res.CurResFile()
-            resref = Res.FSpOpenResFile(path, 1)
-            Res.UseResFile(resref)
-            try:
-                try:
-                    data = Res.Get1Resource('cfrg', 0).data
-                except Res.Error:
-                    raise Res.Error, "no 'cfrg' resource found", sys.exc_info()[2]
-            finally:
-                Res.CloseResFile(resref)
-                Res.UseResFile(currentresref)
-            self.parse(data)
-            if self.version != 1:
-                raise error, "unknown 'cfrg' resource format"
-
-    def parse(self, data):
-        (res1, res2, self.version,
-            res3, res4, res5, res6,
-            self.memberCount) = struct.unpack("8l", data[:32])
-        data = data[32:]
-        while data:
-            frag = FragmentDescriptor(self.path, data)
-            data = data[frag.memberSize:]
-            self.fragments.append(frag)
-
-    def build(self):
-        self.memberCount = len(self.fragments)
-        data = struct.pack("8l", 0, 0, self.version, 0, 0, 0, 0, self.memberCount)
-        for frag in self.fragments:
-            data = data + frag.build()
-        return data
-
-    def append(self, frag):
-        self.fragments.append(frag)
-
-
-class FragmentDescriptor:
-
-    def __init__(self, path, data = None):
-        self.path = path
-        if data is not None:
-            self.parse(data)
-
-    def parse(self, data):
-        self.architecture = data[:4]
-        (   self.updatelevel,
-            self.currentVersion,
-            self.oldDefVersion,
-            self.stacksize,
-            self.applibdir,
-            self.fragtype,
-            self.where,
-            self.offset,
-            self.length,
-            self.res1, self.res2,
-            self.memberSize,) = struct.unpack("4lhBB4lh", data[4:42])
-        pname = data[42:self.memberSize]
-        self.name = pname[1:1+ord(pname[0])]
-
-    def build(self):
-        data = self.architecture
-        data = data + struct.pack("4lhBB4l",
-                self.updatelevel,
-                self.currentVersion,
-                self.oldDefVersion,
-                self.stacksize,
-                self.applibdir,
-                self.fragtype,
-                self.where,
-                self.offset,
-                self.length,
-                self.res1, self.res2)
-        self.memberSize = len(data) + 2 + 1 + len(self.name)
-        # pad to 4 byte boundaries
-        if self.memberSize % 4:
-            self.memberSize = self.memberSize + 4 - (self.memberSize % 4)
-        data = data + struct.pack("hb", self.memberSize, len(self.name))
-        data = data + self.name
-        data = data + '\000' * (self.memberSize - len(data))
-        return data
-
-    def getfragment(self):
-        if self.where != 1:
-            raise error, "can't read fragment, unsupported location"
-        f = open(self.path, "rb")
-        f.seek(self.offset)
-        if self.length:
-            frag = f.read(self.length)
-        else:
-            frag = f.read()
-        f.close()
-        return frag
-
-    def copydata(self, outfile):
-        if self.where != 1:
-            raise error, "can't read fragment, unsupported location"
-        infile = open(self.path, "rb")
-        if self.length == 0:
-            infile.seek(0, 2)
-            self.length = infile.tell()
-
-        # Position input file and record new offset from output file
-        infile.seek(self.offset)
-
-        # pad to 16 byte boundaries
-        offset = outfile.tell()
-        if offset % 16:
-            offset = offset + 16 - (offset % 16)
-        outfile.seek(offset)
-        self.offset = offset
-
-        l = self.length
-        while l:
-            if l > BUFSIZE:
-                outfile.write(infile.read(BUFSIZE))
-                l = l - BUFSIZE
-            else:
-                outfile.write(infile.read(l))
-                l = 0
-        infile.close()

Modified: python/branches/p3yk/Misc/NEWS
==============================================================================
--- python/branches/p3yk/Misc/NEWS	(original)
+++ python/branches/p3yk/Misc/NEWS	Fri Jun  1 04:32:41 2007
@@ -226,6 +226,9 @@
 Mac
 ---
 
+- The cfmfile was removed.
+
+
 New platforms
 -------------
 


More information about the Python-3000-checkins mailing list