Пример #1
0
    def menu_save(self):
        if not self.path:
            self.menu_save_as()
            return  # Will call us recursively
        #
        # First save data
        #
        dhandle = self.ted.WEGetText()
        data = dhandle.data
        fp = open(self.path,
                  'wb')  # NOTE: wb, because data has CR for end-of-line
        fp.write(data)
        if data[-1] <> '\r': fp.write('\r')
        fp.close()
        #
        # Now save style and soup
        #
        oldresfile = Res.CurResFile()
        try:
            rf = Res.FSpOpenResFile(self.path, 3)
        except Res.Error:
            Res.FSpCreateResFile(self.path, '????', 'TEXT', macfs.smAllScripts)
            rf = Res.FSpOpenResFile(self.path, 3)
        styles = Res.Resource('')
        soup = Res.Resource('')
        self.ted.WECopyRange(0, 0x3fffffff, None, styles, soup)
        styles.AddResource('styl', 128, '')
        soup.AddResource('SOUP', 128, '')
        Res.CloseResFile(rf)
        Res.UseResFile(oldresfile)

        self.ted.WEResetModCount()
Пример #2
0
    def __init__(self, path, ttFont, res_id=None):
        self.file = StringIO()
        self.name = path
        self.closed = 0
        fullname = ttFont['name'].getName(
            4, 1, 0)  # Full name, mac, default encoding
        familyname = ttFont['name'].getName(
            1, 1, 0)  # Fam. name, mac, default encoding
        psname = ttFont['name'].getName(6, 1, 0)  # PostScript name, etc.
        if fullname is None or fullname is None or psname is None:
            from fontTools import ttLib

            raise ttLib.TTLibError(
                "can't make 'sfnt' resource, no Macintosh 'name' table found")
        self.fullname = fullname.string
        self.familyname = familyname.string
        self.psname = psname.string
        if self.familyname != self.psname[:len(self.familyname)]:
            # ugh. force fam name to be the same as first part of ps name,
            # fondLib otherwise barfs.
            for i in range(min(len(self.psname), len(self.familyname))):
                if self.familyname[i] != self.psname[i]:
                    break
            self.familyname = self.psname[:i]

        self.ttFont = ttFont
        self.res_id = res_id
        if os.path.exists(self.name):
            os.remove(self.name)
        # XXX datafork support
        Res.FSpCreateResFile(self.name, 'DMOV', 'FFIL', 0)
        self.resref = Res.FSOpenResFile(self.name,
                                        3)  # exclusive read/write permission
Пример #3
0
def writeestr(dst, edict):
    """Create Estr resource file given a dictionary of errors."""

    os.unlink(dst.as_pathname())
    Res.FSpCreateResFile(dst, 'RSED', 'rsrc', smAllScripts)
    output = Res.FSpOpenResFile(dst, WRITE)
    Res.UseResFile(output)
    for num in edict.keys():
        res = Res.Resource(Pstring(edict[num][0]))
        res.AddResource('Estr', num, '')
        res.WriteResource()
    Res.CloseResFile(output)
Пример #4
0
 def writewindowsettings(self):
     try:
         resref = Res.FSpOpenResFile(self.path, 3)
     except Res.Error:
         Res.FSpCreateResFile(self.path, self._creator, 'TEXT', smAllScripts)
         resref = Res.FSpOpenResFile(self.path, 3)
     try:
         data = Res.Resource(marshal.dumps(self.settings))
         Res.UseResFile(resref)
         try:
             temp = Res.Get1Resource('PyWS', 128)
             temp.RemoveResource()
         except Res.Error:
             pass
         data.AddResource('PyWS', 128, "window settings")
     finally:
         Res.UpdateResFile(resref)
         Res.CloseResFile(resref)
Пример #5
0
def writeLWFN(path, data):
	Res.FSpCreateResFile(path, "just", "LWFN", 0)
	resRef = Res.FSpOpenResFile(path, 2)  # write-only
	try:
		Res.UseResFile(resRef)
		resID = 501
		chunks = findEncryptedChunks(data)
		for isEncrypted, chunk in chunks:
			if isEncrypted:
				code = 2
			else:
				code = 1
			while chunk:
				res = Res.Resource(chr(code) + '\0' + chunk[:LWFNCHUNKSIZE - 2])
				res.AddResource('POST', resID, '')
				chunk = chunk[LWFNCHUNKSIZE - 2:]
				resID = resID + 1
		res = Res.Resource(chr(5) + '\0')
		res.AddResource('POST', resID, '')
	finally:
		Res.CloseResFile(resRef)
Пример #6
0
# A minimal text editor.
Пример #7
0
#
Пример #8
0
"""Parse sys/errno.h and Errors.h and create Estr resource"""
Пример #9
0
"""macostools - Various utility functions for MacOS.
Пример #10
0
"""tools for BuildApplet and BuildApplication"""
Пример #11
0
"""Creation of PYC resources"""