You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
#
|
|
# 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
|
|
|