Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

Si hay problemas con el 'charset' de los ficheros, nos apañamos lo mejor posible

Última Actualización: 29 de noviembre de 2010 - Lunes

El Sistema Operativo de mi máquina P2P hospedada es un poco temperamental con el juego de caracteres de los nombres mostrados en la interfaz "curses".

El parche cambia los caracteres problemáticos a interrogaciones (en la pantalla, no en el disco):

diff -r 62ae4785aa08 -r a32f9b12b76c btlaunchmanycurses.py
--- a/btlaunchmanycurses.py     Mon Jan 11 06:00:50 2010 +0100
+++ b/btlaunchmanycurses.py     Fri Feb 05 14:07:15 2010 +0100
@@ -166,9 +166,15 @@
         if line < 0:
             return False
         if bold:
+          try:
             self.mainwin.addnstr(line, 0, s, self.mainwinw, curses.A_BOLD)
+          except :  # Si hay problemas, intentamos limpiar el nombre
+            self.mainwin.addnstr(line, 0, "".join([i if ord(i)<128 else "?" for i in s]), self.mainwinw, curses.A_BOLD)
         else:
+          try :
             self.mainwin.addnstr(line, 0, s, self.mainwinw)
+          except :  # Si hay problemas, intentamos limpiar el nombre
+            self.mainwin.addnstr(line, 0, "".join([i if ord(i)<128 else "?" for i in s]), self.mainwinw)
         if self.disp_line >= self.mainwinh:
             self.disp_end = True
         return self.disp_end
@@ -254,8 +260,11 @@
         self.statuswin.erase()
         winpos = 0
         for s in self.messages[-self.statuswinh:]:
+          try :
             self.statuswin.addnstr(winpos, 0, s, self.mainwinw)
-            winpos += 1
+          except :  # Si hay problemas, intentamos limpiar el nombre
+            self.mainwin.addnstr(winpos, 0, "".join([i if ord(i)<128 else "?" for i in s]), self.mainwinw)
+          winpos += 1
         curses.panel.update_panels()
         curses.doupdate()


Historia

  • 29/nov/10: Primera versión de esta página.



Python Zope ©2010 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS