Package: xword
Version: 1.0-4
Severity: wishlist

I can't find any specification of what the character encoding used in
the AcrossLite .PUZ format is supposed to be, but when generating
files to be used by xword it's nice to be able to use UTF-8.  The
attached patch adds a command line option to try decoding strings in
the file as UTF-8 before falling back to the existing default,
ISO-8859-1.  It also adds a usage message.

regards,
mark

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-486
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to en_GB.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages xword depends on:
ii  python                        2.5.2-1    An interactive high-level object-o
ii  python-gtk2                   2.12.1-6   Python bindings for the GTK+ widge

xword recommends no packages.

-- debconf-show failed
--- /usr/games/xword	2009-06-28 05:31:48.000000000 +0100
+++ bin/xword	2009-08-03 13:02:43.000000000 +0100
@@ -52,6 +52,9 @@
 import pickle
 import ConfigParser
 
+from optparse import OptionParser
+try_utf_8_first = False
+
 HOME_PATH = '/usr/share/games/xword'
 CHECK_ICON = HOME_PATH + '/crossword-check.png'
 CHECK_ALL_ICON = HOME_PATH + '/crossword-check-all.png'
@@ -131,6 +134,11 @@
         result = s
         ellipsis_char = 133
         result = result.replace(chr(ellipsis_char), '...')
+        if try_utf_8_first:
+            try:
+                return unicode(result, 'utf_8')
+            except:
+                pass
         result = unicode(result, 'iso_8859-1')
         return result
 
@@ -1812,10 +1820,21 @@
         c.write(file(os.path.expanduser('~/.crossword.cfg'), 'w'))
 
 if __name__ == '__main__':
-    if len(sys.argv) <> 2:
+    
+    parser = OptionParser(usage="Usage: %prog [OPTIONS] [PUZZLE-FILENAME]")
+    parser.add_option('-u', '--utf8', dest="utf8", action="store_true",
+                      default=False, help="Try UTF-8 decoding of clues first.")
+    options,args = parser.parse_args()
+
+    try_utf_8_first = options.utf8
+    
+    if len(args) == 0:
         p = None
+    elif len(args) == 1:
+        p = Puzzle(args[0])
     else:
-        p = Puzzle(sys.argv[1])
+        parser.print_help()
+        sys.exit(1)
         
     w = PuzzleWindow(p)
     gtk.main()

Reply via email to