diff options
-rw-r--r-- | gettext.py | 73 | ||||
-rwxr-xr-x | upd-instroot | 14 | ||||
-rw-r--r-- | xserver.py | 10 |
3 files changed, 71 insertions, 26 deletions
diff --git a/gettext.py b/gettext.py index dcef90349..cd5832f4d 100644 --- a/gettext.py +++ b/gettext.py @@ -37,7 +37,7 @@ compile it into a .mo file, ready for use with this module. Note that you will have to use C style strings (ie. use double quotes) for proper string extraction. """ -import os, string +import os, string, iutil prefix = '/usr/local' localedir = prefix + '/share/locale' @@ -79,7 +79,12 @@ if os.environ.has_key('PY_XGETTEXT'): else: xgettext = None -del os, string +if iutil.getArch() == 'sparc': + _gettext_byteorder = 'msb' +else: + _gettext_byteorder = 'lsb' + +del os, string, iutil error = 'gettext.error' @@ -93,6 +98,26 @@ def _intToLsbStr(int): chr((int >> 8) & 0xff) + \ chr((int >> 16) & 0xff) + \ chr((int >> 24) & 0xff) +def _msbStrToInt(str): + return ord(str[3]) + \ + (ord(str[2]) << 8) + \ + (ord(str[1]) << 16) + \ + (ord(str[0]) << 24) +def _intToMsbStr(int): + return chr((int >> 24) & 0xff) + \ + chr((int >> 16) & 0xff) + \ + chr((int >> 8) & 0xff) + \ + chr(int & 0xff) +def _StrToInt(str): + if _gettext_byteorder == 'msb': + return _msbStrToInt(str) + else: + return _lsbStrToInt(str) +def _intToStr(int): + if _gettext_byteorder == 'msb': + return _intToMsbStr(str) + else: + return _intToLsbStr(str) def _getpos(levels = 0): """Returns the position in the code where the function was called. @@ -132,26 +157,26 @@ class Catalog: else: return # assume C locale - if _lsbStrToInt(buffer[:4]) != 0x950412de: + if _StrToInt(buffer[:4]) != 0x950412de: # magic number doesn't match raise error, 'Bad magic number in %s' % (catalog,) - self.revision = _lsbStrToInt(buffer[4:8]) - nstrings = _lsbStrToInt(buffer[8:12]) - origTabOffset = _lsbStrToInt(buffer[12:16]) - transTabOffset = _lsbStrToInt(buffer[16:20]) + self.revision = _StrToInt(buffer[4:8]) + nstrings = _StrToInt(buffer[8:12]) + origTabOffset = _StrToInt(buffer[12:16]) + transTabOffset = _StrToInt(buffer[16:20]) for i in range(nstrings): - origLength = _lsbStrToInt(buffer[origTabOffset: - origTabOffset+4]) - origOffset = _lsbStrToInt(buffer[origTabOffset+4: - origTabOffset+8]) + origLength = _StrToInt(buffer[origTabOffset: + origTabOffset+4]) + origOffset = _StrToInt(buffer[origTabOffset+4: + origTabOffset+8]) origTabOffset = origTabOffset + 8 origStr = buffer[origOffset:origOffset+origLength] - transLength = _lsbStrToInt(buffer[transTabOffset: - transTabOffset+4]) - transOffset = _lsbStrToInt(buffer[transTabOffset+4: - transTabOffset+8]) + transLength = _StrToInt(buffer[transTabOffset: + transTabOffset+4]) + transOffset = _StrToInt(buffer[transTabOffset+4: + transTabOffset+8]) transTabOffset = transTabOffset + 8 transStr = buffer[transOffset:transOffset+transLength] @@ -177,9 +202,9 @@ class Catalog: f = open(file, "wb") except IOError: raise error, "can't open " + file + " for writing" - f.write(_intToLsbStr(0x950412de)) # magic number - f.write(_intToLsbStr(0)) # revision - f.write(_intToLsbStr(len(self.cat))) # nstrings + f.write(_intToStr(0x950412de)) # magic number + f.write(_intToStr(0)) # revision + f.write(_intToStr(len(self.cat))) # nstrings oIndex = []; oData = '' tIndex = []; tData = '' @@ -192,14 +217,14 @@ class Catalog: tIndexOfs = oIndexOfs + 8 * len(oIndex) oDataOfs = tIndexOfs + 8 * len(tIndex) tDataOfs = oDataOfs + len(oData) - f.write(_intToLsbStr(oIndexOfs)) - f.write(_intToLsbStr(tIndexOfs)) + f.write(_intToStr(oIndexOfs)) + f.write(_intToStr(tIndexOfs)) for length, offset in oIndex: - f.write(_intToLsbStr(length)) - f.write(_intToLsbStr(offset + oDataOfs)) + f.write(_intToStr(length)) + f.write(_intToStr(offset + oDataOfs)) for length, offset in tIndex: - f.write(_intToLsbStr(length)) - f.write(_intToLsbStr(offset + tDataOfs)) + f.write(_intToStr(length)) + f.write(_intToStr(offset + tDataOfs)) f.write(oData) f.write(tData) diff --git a/upd-instroot b/upd-instroot index d7e961d07..7c1e1f141 100755 --- a/upd-instroot +++ b/upd-instroot @@ -157,7 +157,13 @@ usr/X11R6/lib/X11/fonts/misc/fonts* usr/X11R6/lib/X11/fonts/misc/cursor* usr/X11R6/lib/X11/fonts/misc/olcursor* usr/X11R6/lib/X11/fonts/cyrillic/* -usr/share/fonts/ISO8859-2/* +usr/share/fonts/ISO8859-2/75dpi/cour* +usr/share/fonts/ISO8859-2/75dpi/helv* +usr/share/fonts/ISO8859-2/75dpi/tim* +usr/share/fonts/ISO8859-2/75dpi/fonts* +usr/share/fonts/ISO8859-2/misc/6x* +usr/share/fonts/ISO8859-2/misc/9x* +usr/share/fonts/ISO8859-2/misc/fonts* usr/X11R6/lib/X11/locale/* usr/X11R6/lib/X11/xkb/* usr/X11R6/lib/X11/rgb* @@ -200,6 +206,10 @@ usr/X11R6/lib/X11/fonts/100dpi/cour* usr/X11R6/lib/X11/fonts/100dpi/helv* usr/X11R6/lib/X11/fonts/100dpi/tim* usr/X11R6/lib/X11/fonts/100dpi/fonts* +usr/share/fonts/ISO8859-2/100dpi/cour* +usr/share/fonts/ISO8859-2/100dpi/helv* +usr/share/fonts/ISO8859-2/100dpi/tim* +usr/share/fonts/ISO8859-2/100dpi/fonts* EOF fi @@ -224,7 +234,7 @@ for n in $RPMS; do rpm2cpio $n | (cd $DESTGR; cpio -E $KEEPFILEGR --quiet -iumd) done -for I in $DESTGR/usr/X11R6/lib/X11/fonts/*; do +for I in $DESTGR/usr/X11R6/lib/X11/fonts/* $DESTGR/usr/share/fonts/ISO8859-2/*; do mkfontdir $I done diff --git a/xserver.py b/xserver.py index 16bb34a98..618894330 100644 --- a/xserver.py +++ b/xserver.py @@ -66,7 +66,9 @@ Section "Files" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/" + FontPath "/usr/share/fonts/ISO8859-2/misc/" FontPath "/usr/share/fonts/ISO8859-2/75dpi/" + FontPath "/usr/share/fonts/ISO8859-2/100dpi/" EndSection Section "ServerFlags" @@ -118,6 +120,14 @@ EndSection if x.device: args.append ("-dev") args.append ('/dev/' + x.device) + args.append("-fp") + args.append("/usr/X11R6/lib/X11/fonts/misc/," + "/usr/X11R6/lib/X11/fonts/75dpi/," + "/usr/X11R6/lib/X11/fonts/100dpi/," + "/usr/X11R6/lib/X11/fonts/cyrillic/," + "/usr/share/fonts/ISO8859-2/misc/," + "/usr/share/fonts/ISO8859-2/75dpi/," + "/usr/share/fonts/ISO8859-2/100dpi/") else: args.append("-xf86config") args.append("/tmp/XF86Config") |