updated support for readonly files
svn: r948
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2000 Donald N. Allingham
|
||||
@@ -23,8 +22,9 @@ import cStringIO
|
||||
ANSEL_ERROR = "ANSEL Error"
|
||||
|
||||
_s1 = {
|
||||
0xC3 : { 0xB8 : 0xF8 , 0x98 : 0xD8},
|
||||
0xEA : { ord('A') : 0xC5, ord('a') : 0xE5 },
|
||||
0xE8 : { ord('A') : 0xC4, ord('E') : 0xCB, ord('I') : 0xCF, ord('O') : 0xD6,
|
||||
0xE8 : { ord('A') : 0xC4, ord('E') : 0xCB, ord('I') : 0xCF, ord('O') : 0xD6,
|
||||
ord('U') : 0xDC, ord('a') : 0xE4, ord('e') : 0xEB, ord('i') : 0xEF,
|
||||
ord('o') : 0xF6, ord('u') : 0xFC, ord('y') : 0xFF },
|
||||
0xE2 : { ord('A') : 0xC1, ord('E') : 0xC9, ord('I') : 0xCD, ord('O') : 0xD3,
|
||||
@@ -59,7 +59,9 @@ _t1 = {
|
||||
0xF2 : (chr(0xE1), 'o'), 0xF3 : (chr(0xE2), 'o'), 0xF4 : (chr(0xE3), 'o'),
|
||||
0xF5 : (chr(0xE4), 'o'), 0xF6 : (chr(0xE8), 'o'), 0xF9 : (chr(0xE1), 'u'),
|
||||
0xFA : (chr(0xE2), 'u'), 0xFB : (chr(0xE3), 'u'), 0xFC : (chr(0xE8), 'u'),
|
||||
0xFD : (chr(0xE2), 'y'), 0xFF : (chr(0xE8), 'y')
|
||||
0xFD : (chr(0xE2), 'y'), 0xFF : (chr(0xE8), 'y'),
|
||||
0xF8 : (chr(0xC3), chr(0xB8)),
|
||||
0xD8 : (chr(0xC3), chr(0x98)),
|
||||
}
|
||||
|
||||
_s0 = {
|
||||
@@ -67,16 +69,18 @@ _s0 = {
|
||||
0xB3 : 0xF8, 0xA5 : 0xC6, 0xB5 : 0xE6, 0xBA : 0xF0 }
|
||||
|
||||
_t0 = {
|
||||
0xDF : chr(0xCF), 0xDE : chr(0xA4), 0xFE : chr(0xB4), 0xD8 : chr(0xA2),
|
||||
0xF8 : chr(0xB3), 0xC6 : chr(0xA5), 0xE6 : chr(0xB5), 0xBA : chr(0xF0),
|
||||
0xDF : chr(0xCF), 0xDE : chr(0xA4), 0xFE : chr(0xB4),
|
||||
0xC6 : chr(0xA5), 0xE6 : chr(0xB5), 0xBA : chr(0xF0),
|
||||
0xB0 : chr(0xC0) }
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
# Tasks
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
def ansel_to_latin(s):
|
||||
"""Converts an ANSEL encoded string to ISO-8859-1"""
|
||||
buff = cStringIO.StringIO()
|
||||
while s:
|
||||
c0 = ord(s[0])
|
||||
@@ -85,7 +89,7 @@ def ansel_to_latin(s):
|
||||
s = s[1:]
|
||||
elif c0 > 127:
|
||||
try:
|
||||
if c0 >= 0xE0:
|
||||
if c0 >= 0xC0:
|
||||
c1 = ord(s[1])
|
||||
head = chr(_s1[c0][c1])
|
||||
s = s[2:]
|
||||
@@ -103,12 +107,8 @@ def ansel_to_latin(s):
|
||||
buff.close()
|
||||
return ans
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def latin_to_ansel(s):
|
||||
"""converts a iso-8859-1 string to ansel encoding"""
|
||||
buff = cStringIO.StringIO()
|
||||
orig = s
|
||||
while s:
|
||||
|
||||
Reference in New Issue
Block a user