Changeset 95

Show
Ignore:
Timestamp:
03/19/04 21:35:03 (4 years ago)
Author:
ug
Message:

Encoding support.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 05/devel/doc/tutorial.html

    r93 r95  
    819819Mac OS X users it is available via fink. Otherwise, 
    820820you can get it at  
    821 <a href="http://cjkpython.berlios.de/">http://cjkpython.berlios.de/</a>.</p> 
     821<a href="http://cjkpython.i18n.org/">http://cjkpython.i18n.org/</a>.</p> 
    822822 
    823823 
  • 05/devel/kombilo.py

    r91 r95  
    27082708                    s = sOrig.decode(currentEncoding).encode('utf-8') 
    27092709                    cursor = Cursor(s, self.options.sloppySGF.get()) 
     2710                     
    27102711                    if encoding1 == 2 and not cursor.encoding: 
     2712                        d = cursor.getRootNode(0) 
     2713                        d['CA'] = ['utf-8'] 
     2714                        cursor.encoding = 'utf-8' 
     2715                        cursor.updateRootNode(d,0) 
    27112716                        file = open(f, 'w') 
    2712                         file.write(s
     2717                        file.write(cursor.output()
    27132718                        file.close() 
    27142719                except IOError: 
     
    27192724            if cursor.root.numChildren > 1: 
    27202725                collection = 1 
    2721                 messages.insert(END, 'Warning: ' + f + ' is a collection; for performance reasons it would be better to' + \ 
     2726                messages.insert(END,'Warning: '+f+' is a collection; for performance reasons it would be better to' + \ 
    27222727                                ' split it into files with single game records.\n') 
    27232728            elif cursor.root.numChildren == 1: 
     
    51115116        return filename, gameNumber, moveno 
    51125117 
     5118    def getEncoding(self, no, label): 
     5119        dbindex, index = self.gamelist.getIndex(int(no[0])) 
     5120        if dbindex == -1: return 
     5121        else: return self.gamelist.DBlist[dbindex]['encoding'] 
     5122 
     5123 
    51135124 
    51145125    def openViewer_external(self, filename, gameNumber, moveno): 
     
    51805191 
    51815192 
    5182     def openViewer_internal(self, filename, gameNumber, moveno): 
    5183         apply(self.openFile, os.path.split(filename)
     5193    def openViewer_internal(self, filename, gameNumber, moveno, encoding): 
     5194        apply(self.openFile, os.path.split(filename) + (encoding,)
    51845195 
    51855196        if gameNumber: 
     
    52125223         
    52135224        filename, gameNumber, moveno = self.getFilename(no, label) 
     5225        encoding = self.getEncoding(no, label) 
    52145226        if not self.options.externalViewer.get(): 
    52155227            self.openViewer_external(filename, gameNumber, moveno) 
    52165228        else: 
    5217             self.openViewer_internal(filename, gameNumber, moveno
     5229            self.openViewer_internal(filename, gameNumber, moveno, encoding
    52185230 
    52195231 
     
    52225234 
    52235235        filename, gameNumber, moveno = self.getFilename(no, label) 
     5236        encoding = self.getEncoding(no, label) 
    52245237        if self.options.externalViewer.get(): 
    52255238            self.openViewer_external(filename, gameNumber, moveno)            
    52265239        else: # don't open external viewer 
    5227             self.openViewer_internal(filename, gameNumber, moveno
     5240            self.openViewer_internal(filename, gameNumber, moveno, encoding
    52285241 
    52295242                     
     
    57455758            self.options.maxLengthSearchesStack.set(i)     
    57465759         
    5747     def openFile(self, path=None, filename=None): 
     5760    def openFile(self, path=None, filename=None, encoding = None): 
    57485761        self.board.newPosition() 
    5749         v.Viewer.openFile(self, path, filename
     5762        v.Viewer.openFile(self, path, filename, encoding
    57505763 
    57515764 
  • 05/devel/v.py

    r71 r95  
    10581058        if self.encoding: 
    10591059            try: 
    1060                 s = s.decode(self.encoding.lower()) # .encode('utf-8') 
     1060                s = s.decode(self.encoding.lower()).encode('utf-8') 
    10611061            except: 
    10621062                pass         
     
    22342234 
    22352235 
    2236     def openFile(self, path = None, filename = None): 
     2236    def openFile(self, path = None, filename = None, encoding = None): 
    22372237        """ Read an SGF file given by filename (if None, ask 
    22382238            for a filename). """ 
     
    22722272                    return 0 
    22732273 
     2274                if not c.encoding: c.encoding=encoding 
     2275 
    22742276                self.dataWindow.filelist.insert(0, filename) 
    22752277                self.filelist.insert(0, [filename, os.path.join(path,filename), (), c, {}]) 
     
    26512653        window = Toplevel() 
    26522654        window.transient(self.master) 
     2655        window.protocol('WM_DELETE_WINDOW', self.gameinfoCancel) 
    26532656        self.gameinfoWindow = window 
    26542657        window.title('Game Info')