mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#
 | 
						|
# Create 'Estr' resource from error dictionary
 | 
						|
from Res import *
 | 
						|
import Res
 | 
						|
from Resources import *
 | 
						|
import MacOS
 | 
						|
import string
 | 
						|
 | 
						|
READ = 1
 | 
						|
WRITE = 2
 | 
						|
smAllScripts = -3
 | 
						|
 | 
						|
def Pstring(str):
 | 
						|
	if len(str) > 255:
 | 
						|
		raise ValueError, 'String too large'
 | 
						|
	return chr(len(str))+str
 | 
						|
	
 | 
						|
def writeestr(dst, edict):
 | 
						|
	"""Create Estr resource file given a dictionary of errors."""
 | 
						|
	
 | 
						|
 | 
						|
	FSpCreateResFile(dst, 'RSED', 'rsrc', smAllScripts)
 | 
						|
	output = FSpOpenResFile(dst, WRITE)
 | 
						|
	UseResFile(output)
 | 
						|
	for num in edict.keys():
 | 
						|
		res = Resource(Pstring(edict[num]))
 | 
						|
		res.AddResource('Estr', num, '')
 | 
						|
		res.WriteResource()
 | 
						|
	CloseResFile(output)
 | 
						|
	
 | 
						|
def parsefile(src):
 | 
						|
	fp = open(src)
 | 
						|
	lines = []
 | 
						|
	while 1:
 | 
						|
		x = fp.readline()
 | 
						|
		if not x:
 | 
						|
			break
 | 
						|
		x = x[:-1]
 | 
						|
		words = string.split(x)
 | 
						|
		if x[0] in (' ', '\t'):
 | 
						|
			# continuation line
 | 
						|
			x = string.join(words)
 | 
						|
			lines[-1] = lines[-1] + ' ' + x
 | 
						|
		else:
 | 
						|
			x = string.join(words)
 | 
						|
			lines.append(x)
 | 
						|
	dict = {}
 | 
						|
	for line in lines:
 | 
						|
		words = string.split(line)
 | 
						|
		index = eval(words[0])
 | 
						|
		if dict.has_key(index):
 | 
						|
			print '** Duplicate key:', index
 | 
						|
		x = string.join(words[2:])
 | 
						|
		if not x:
 | 
						|
			x = words[1]
 | 
						|
		dict[index] = x
 | 
						|
	return dict
 | 
						|
			
 | 
						|
	
 | 
						|
if __name__ == '__main__':
 | 
						|
	dict = parsefile('errors.txt')
 | 
						|
	writeestr('errors.rsrc', dict)
 |