[Sugar-devel] [PATCH] This patch fix the bug, accent nicknames are not displayed well

Ariel Calzada ariel.calzada at gmail.com
Mon Apr 16 15:13:00 EDT 2012


This patch is for fixing the bug in the display of nicknames with accents like áéíóúñ
in maze activity

---
 player.py |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/player.py b/player.py
index 5e9e8db..a6636dc 100644
--- a/player.py
+++ b/player.py
@@ -8,17 +8,17 @@
 #
 # Copyright (C) 2007  Joshua Minor
 # This file is part of Maze.activity
-# 
+#
 #     Maze.activity is free software: you can redistribute it and/or modify
 #     it under the terms of the GNU General Public License as published by
 #     the Free Software Foundation, either version 3 of the License, or
 #     (at your option) any later version.
-# 
+#
 #     Maze.activity is distributed in the hope that it will be useful,
 #     but WITHOUT ANY WARRANTY; without even the implied warranty of
 #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #     GNU General Public License for more details.
-# 
+#
 #     You should have received a copy of the GNU General Public License
 #     along with Maze.activity.  If not, see <http://www.gnu.org/licenses/>.
 
@@ -29,14 +29,16 @@ from sugar.graphics.xocolor import XoColor
 import pygame
 import re
 import os
+import unicodedata
 
 
 class Player:
     def __init__(self, buddy, shape='circle'):
         self.buddy = buddy
-        self.nick = buddy.props.nick.decode("utf-8")
+        name = buddy.props.nick.decode('utf-8')
+        self.nick = unicodedata.normalize('NFC',name)
         colors = buddy.props.color.split(",")
-        
+
         def string2Color(str):
             return (int(str[1:3], 16), int(str[3:5], 16), int(str[5:7], 16))
         self.colors = map(string2Color, colors)
@@ -70,7 +72,7 @@ class Player:
         self.position = (1, 1)
         self.previous = (1, 1)
         self.elapsed = None
-    
+
     def animate(self, maze):
         # if the player finished the maze, then don't move
         if maze.map[self.position[0]][self.position[1]] == maze.GOAL:
@@ -83,7 +85,7 @@ class Player:
         else:
             self.direction = (0, 0)
         return self.position
-    
+
     def move(self, direction, maze):
         """Move the player in a given direction (deltax,deltay)"""
         newposition = (self.position[0] + direction[0], self.position[1] + direction[1])
@@ -111,7 +113,7 @@ class Player:
                 directions.remove(d)
         # is there only one possible direction?
         if len(directions) == 1:
-       	    self.direction = directions[0]
+            self.direction = directions[0]
         else:
             self.direction = (0, 0)
 
-- 
1.7.5.4



More information about the Sugar-devel mailing list