Changeset 116 for 05/devel/kombilo.py

Show
Ignore:
Timestamp:
03/22/04 21:15:31 (5 years ago)
Author:
ug
Message:

Various encodings fixes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • 05/devel/kombilo.py

    r114 r116  
    44##   Copyright (C) 2001-4 Ulrich Goertz (u@g0ertz.de) 
    55 
    6 ##   Kombilo 0.5j is a go database program. 
     6##   Kombilo 0.5k is a go database program. 
    77 
    88##   This program is free software; you can redistribute it and/or modify 
     
    3737    t.pack() 
    3838 
    39     t.insert(END, 'Kombilo 0.5j\n\n The Python Megawidgets (Pmw) library was not found. It is needed by Kombilo, ' + \ 
     39    t.insert(END, 'Kombilo 0.5k\n\n The Python Megawidgets (Pmw) library was not found. It is needed by Kombilo, ' + \ 
    4040             'so you have to install it before you can use Kombilo. See the Kombilo tutorial at ' + \ 
    4141             'http://www.u-go.net/kombilo/tutorial#installation or the Pmw web site at ' + \ 
     
    597597            enc = '' 
    598598        newRootNode = self.mster.gameinfo(rootNode, enc) 
    599         if backup != newRootNode: 
     599        if (not newRootNode is None) and backup != newRootNode: 
    600600            c.updateRootNode(newRootNode, gameNumber) 
    601601            try: 
     
    40264026        self.statistics = {} 
    40274027 
    4028         pbVar = self.pbVar.get() 
    4029         pwVar = self.pwVar.get() 
    4030         pVar  = self.pVar.get() 
    4031         evVar = self.evVar.get() 
     4028        pbVar = self.pbVar.get().encode('utf-8') 
     4029        pwVar = self.pwVar.get().encode('utf-8') 
     4030        pVar  = self.pVar.get().encode('utf-8') 
     4031        evVar = self.evVar.get().encode('utf-8') 
    40324032        frVar = self.frVar.get() 
    40334033        toVar = self.toVar.get() 
    4034         awVar = self.awVar.get() 
     4034        awVar = self.awVar.get().encode('utf-8') 
    40354035        refVar = self.referencedVar.get() 
    40364036 
     
    41324132                         
    41334133                        if gameNumber == -1:         # no collection, so we get away without parsing the SGF file 
     4134 
     4135                            # is there an encoding tag? 
     4136 
     4137                            enc_begin = find(sgf, 'CA[') 
     4138                            if enc_begin != -1: 
     4139                                encoding = lower(strip(sgf[enc_begin+3: find(sgf, ']', enc_begin)])) 
     4140                            else: 
     4141                                encoding = db['encoding'] 
     4142 
    41344143                            sgf = lower(sgf) 
     4144                            if encoding != 'utf-8': 
     4145                                try: sgf = sgf.decode(encoding, 'ignore').encode('utf-8', 'ignore') 
     4146                                except: pass 
     4147                                 
    41354148                            if awVar and find(sgf, awVar) == -1: continue 
    41364149 
     
    41524165                                    showwarning('Error', 'SGF error in file ' + filename) 
    41534166                                    continue 
     4167                             
    41544168                            node = c.getRootNode(gameNumber) 
    41554169 
     4170                            encoding = c.encoding or db['encoding'] 
     4171                             
    41564172                            ok = 1 
    41574173                            for var,tag in [(evVar,'EV')]: 
     4174                                try: var = var.decode('utf-8', 'ignore').encode(encoding, 'ignore') 
     4175                                except: pass 
    41584176                                if var and not (node.has_key(tag) and find(lower(node[tag][0]), var) != -1): 
    41594177                                    ok = 0 
     
    41614179 
    41624180                            if awVar: 
     4181                                try: awVar = awVar.decode('utf-8', 'ignore').encode(encoding, 'ignore') 
     4182                                except: pass 
    41634183                                c.game(gameNumber) 
    41644184                                s = lower(c.outputVar(c.currentN)) 
     
    42044224                        if gameNumber == -1:    
    42054225 
     4226                            # is there an encoding tag? 
     4227 
     4228                            enc_begin = find(sgf, 'CA[') 
     4229                            if enc_begin != -1: 
     4230                                encoding = lower(strip(sgf[enc_begin+3: find(sgf, ']', enc_begin)])) 
     4231                            else: 
     4232                                encoding = db['encoding'] 
     4233                                 
     4234                            if encoding != 'utf-8': 
     4235                                try: sgf = sgf.decode(encoding, 'ignore').encode('utf-8', 'ignore') 
     4236                                except: pass 
     4237 
    42064238                            if awVar and find(sgf, awVar) == -1: continue 
    42074239 
     
    42244256                                 
    42254257                            node = c.getRootNode(gameNumber) 
     4258 
     4259                            encoding = c.encoding or db['encoding'] 
    42264260                             
    42274261                            ok = 1 
    42284262                            for var,tag in [(evVar,'EV')]: 
     4263                                try: var = var.decode('utf-8', 'ignore').encode(encoding, 'ignore') 
     4264                                except: pass 
    42294265                                if var and not (node.has_key(tag) and find(node[tag][0], var) != -1): 
    42304266                                    ok = 0 
     
    42324268 
    42334269                            if awVar: 
     4270                                try: awVar = awVar.decode('utf-8', 'ignore').encode(encoding, 'ignore') 
     4271                                except: pass 
    42344272                                c.game(gameNumber) 
    42354273                                s = c.outputVar(c.currentN) 
     
    51275165 
    51285166 
    5129     def openViewer_external(self, filename, gameNumber, moveno): 
     5167    def openViewer_external(self, filename, gameNumber, moveno, encoding = ''): 
    51305168        if self.options.altViewerVar1.get(): 
    51315169                 
     
    51675205            window.protocol('WM_DELETE_WINDOW', viewer.quit) 
    51685206 
    5169             apply(viewer.openFile, os.path.split(filename)) 
     5207            apply(viewer.openFile, os.path.split(filename) + (encoding,)) 
    51705208            viewer.changeCurrentFile(None, 1) 
    51715209            viewer.delFile() 
     
    51965234 
    51975235    def openViewer_internal(self, filename, gameNumber, moveno, encoding): 
     5236 
    51985237        apply(self.openFile, os.path.split(filename) + (encoding,)) 
    51995238 
     
    52295268        encoding = self.getEncoding(no, label) 
    52305269        if not self.options.externalViewer.get(): 
    5231             self.openViewer_external(filename, gameNumber, moveno) 
     5270            self.openViewer_external(filename, gameNumber, moveno, encoding) 
    52325271        else: 
    52335272            self.openViewer_internal(filename, gameNumber, moveno, encoding) 
     
    52405279        encoding = self.getEncoding(no, label) 
    52415280        if self.options.externalViewer.get(): 
    5242             self.openViewer_external(filename, gameNumber, moveno)            
     5281            self.openViewer_external(filename, gameNumber, moveno, encoding)            
    52435282        else: # don't open external viewer 
    52445283            self.openViewer_internal(filename, gameNumber, moveno, encoding) 
     
    59616000        t = [] 
    59626001         
    5963         t.append('Kombilo 0.5j - written by Ulrich Goertz (u@g0ertz.de)\n\n') 
     6002        t.append('Kombilo 0.5k - written by Ulrich Goertz (u@g0ertz.de)\n\n') 
    59646003        t.append('Kombilo is a go database program.\n') 
    59656004        t.append('You can find more information on Kombilo and the newest ')