mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	- Allow PythonApplet to be an alias
- Correctly set bundle and init bits
This commit is contained in:
		
							parent
							
								
									8094f0ddae
								
							
						
					
					
						commit
						7c86b21812
					
				
					 1 changed files with 23 additions and 16 deletions
				
			
		|  | @ -14,6 +14,7 @@ | ||||||
| import marshal | import marshal | ||||||
| import imp | import imp | ||||||
| import macfs | import macfs | ||||||
|  | import MACFS | ||||||
| import MacOS | import MacOS | ||||||
| from Res import * | from Res import * | ||||||
| 
 | 
 | ||||||
|  | @ -42,17 +43,15 @@ def main(): | ||||||
| 	for p in sys.path: | 	for p in sys.path: | ||||||
| 		template = os.path.join(p, TEMPLATE) | 		template = os.path.join(p, TEMPLATE) | ||||||
| 		try: | 		try: | ||||||
| 			tmpl = open(template, "rb") | 			template, d1, d2 = macfs.ResolveAliasFile(template) | ||||||
| 			tmpl.close() |  | ||||||
| 			break | 			break | ||||||
| 		except IOError: | 		except (macfs.error, ValueError): | ||||||
| 			continue | 			continue | ||||||
| 	else: | 	else: | ||||||
| 		die("Template %s not found" % `template`) | 		die("Template %s not found on sys.path" % `TEMPLATE`) | ||||||
| 		return | 		return | ||||||
| 		 | 	template = template.as_pathname() | ||||||
| 	# Convert to full pathname | 	print 'Using template', template | ||||||
| 	template = macfs.FSSpec(template).as_pathname() |  | ||||||
| 			 | 			 | ||||||
| 	# Ask for source text if not specified in sys.argv[1:] | 	# Ask for source text if not specified in sys.argv[1:] | ||||||
| 	 | 	 | ||||||
|  | @ -106,6 +105,10 @@ def process(template, filename, output): | ||||||
| 		destname = output | 		destname = output | ||||||
| 	# Copy the data from the template (creating the file as well) | 	# Copy the data from the template (creating the file as well) | ||||||
| 	 | 	 | ||||||
|  | 	template_fss = macfs.FSSpec(template) | ||||||
|  | 	template_fss, d1, d2 = macfs.ResolveAliasFile(template_fss) | ||||||
|  | 	dest_fss = macfs.FSSpec(destname) | ||||||
|  | 	 | ||||||
| 	tmpl = open(template, "rb") | 	tmpl = open(template, "rb") | ||||||
| 	dest = open(destname, "wb") | 	dest = open(destname, "wb") | ||||||
| 	data = tmpl.read() | 	data = tmpl.read() | ||||||
|  | @ -117,23 +120,23 @@ def process(template, filename, output): | ||||||
| 	# Copy the creator of the template to the destination | 	# Copy the creator of the template to the destination | ||||||
| 	# unless it already got one.  Set type to APPL | 	# unless it already got one.  Set type to APPL | ||||||
| 	 | 	 | ||||||
| 	tctor, ttype = MacOS.GetCreatorAndType(template) | 	tctor, ttype = template_fss.GetCreatorType() | ||||||
| 	ctor, type = MacOS.GetCreatorAndType(destname) | 	ctor, type = dest_fss.GetCreatorType() | ||||||
| 	if type in undefs: type = 'APPL' | 	if type in undefs: type = 'APPL' | ||||||
| 	if ctor in undefs: ctor = tctor | 	if ctor in undefs: ctor = tctor | ||||||
| 	 | 	 | ||||||
| 	# Open the output resource fork | 	# Open the output resource fork | ||||||
| 	 | 	 | ||||||
| 	try: | 	try: | ||||||
| 		output = FSpOpenResFile(destname, WRITE) | 		output = FSpOpenResFile(dest_fss, WRITE) | ||||||
| 	except MacOS.Error: | 	except MacOS.Error: | ||||||
| 		print "Creating resource fork..." | 		print "Creating resource fork..." | ||||||
| 		CreateResFile(destname) | 		CreateResFile(destname) | ||||||
| 		output = FSpOpenResFile(destname, WRITE) | 		output = FSpOpenResFile(dest_fss, WRITE) | ||||||
| 	 | 	 | ||||||
| 	# Copy the resources from the template | 	# Copy the resources from the template | ||||||
| 	 | 	 | ||||||
| 	input = FSpOpenResFile(template, READ) | 	input = FSpOpenResFile(template_fss, READ) | ||||||
| 	newctor = copyres(input, output) | 	newctor = copyres(input, output) | ||||||
| 	CloseResFile(input) | 	CloseResFile(input) | ||||||
| 	if newctor: ctor = newctor | 	if newctor: ctor = newctor | ||||||
|  | @ -149,9 +152,13 @@ def process(template, filename, output): | ||||||
| 		CloseResFile(input) | 		CloseResFile(input) | ||||||
| 		if newctor: ctor = newctor | 		if newctor: ctor = newctor | ||||||
| 	 | 	 | ||||||
| 	# Now set the creator and type of the destination | 	# Now set the creator, type and bundle bit of the destination | ||||||
| 	 | 	dest_finfo = dest_fss.GetFInfo() | ||||||
| 	MacOS.SetCreatorAndType(destname, ctor, type) | 	dest_finfo.Creator = ctor | ||||||
|  | 	dest_finfo.Type = type | ||||||
|  | 	dest_finfo.Flags = dest_finfo.Flags | MACFS.kHasBundle | ||||||
|  | 	dest_finfo.Flags = dest_finfo.Flags & ~MACFS.kHasBeenInited | ||||||
|  | 	dest_fss.SetFInfo(dest_finfo) | ||||||
| 	 | 	 | ||||||
| 	# Make sure we're manipulating the output resource file now | 	# Make sure we're manipulating the output resource file now | ||||||
| 	 | 	 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jack Jansen
						Jack Jansen