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()