X-Git-Url: https://git.sommitrealweird.co.uk/curses-crossword.git/blobdiff_plain/93abf50bf3f0f32684dbd9cc73179a8b1220b69d..547335b843b32fb9a5c56d89b83bb73b63ea666e:/curses-crossword.py diff --git a/curses-crossword.py b/curses-crossword.py index a396105..92f9b92 100644 --- a/curses-crossword.py +++ b/curses-crossword.py @@ -4,6 +4,9 @@ import curses import curses.ascii import locale import codecs +import getopt +import os +import sys locale.setlocale(locale.LC_ALL, '') code = locale.getpreferredencoding() @@ -27,7 +30,26 @@ except: for number in range(0,10): superscript_numbers[str(number)] = str(number) -crossworddata = codecs.open("crossword.output", "r", "utf-8").read() +filename = None + +(options, args) = getopt.getopt(sys.argv[1:], "f:", "file=") + +for option in options: + if option[0] == "-f" or option[0] == "--file": + filename = option[1] + +if not filename and len(args) > 0: + filename = args[0] + +if not filename: + sys.stderr.write("No crossword file specified, exiting.\n") + sys.exit(0) + +if os.path.exists(filename) and os.path.isfile(filename): + crossworddata = codecs.open(filename, "r", "utf-8").read() +else: + sys.stderr.write("Couldn't open file %s\n" %(filename)) + sys.exit(0) def parsecrossword(crossworddata): ingrid = False @@ -58,13 +80,13 @@ def parsecrossword(crossworddata): parts = line.split() question_number = int(parts[0]) clue = " ".join(parts[1:]) - crossword["across"][int(question_number)] = clue + crossword["across"][int(question_number)] = clue.encode('utf-8') if indown: if line != "": parts = line.split() question_number = int(parts[0]) clue = " ".join(parts[1:]) - crossword["down"][int(question_number)] = clue + crossword["down"][int(question_number)] = clue.encode('utf-8') num_cols = len(crossword["grid"][0]) num_rows = len(crossword["grid"])