improved handling of encodings/utf-8/curses
--HG-- branch : pmacs2
This commit is contained in:
parent
c7070c2d01
commit
9b57b04658
|
@ -858,7 +858,8 @@ class Application(object):
|
||||||
char = chr(junk & 255)
|
char = chr(junk & 255)
|
||||||
attr = color.build(fg, bg)
|
attr = color.build(fg, bg)
|
||||||
try:
|
try:
|
||||||
self.addstr(sy, sx, char, attr)
|
#self.addstr(sy, sx, char, attr)
|
||||||
|
self.win.addstr(sy, sx, char, attr)
|
||||||
except curses.error:
|
except curses.error:
|
||||||
raise DrawError("(%d, %d, %r, %r) v. (%d, %d)" %
|
raise DrawError("(%d, %d, %r, %r) v. (%d, %d)" %
|
||||||
(sy, sx, fg, bg, self.y, self.x))
|
(sy, sx, fg, bg, self.y, self.x))
|
||||||
|
@ -984,9 +985,12 @@ class Application(object):
|
||||||
limit = util.get_margin_limit(w, 80)
|
limit = util.get_margin_limit(w, 80)
|
||||||
if limit < self.x:
|
if limit < self.x:
|
||||||
for j in xrange(0, slot.height):
|
for j in xrange(0, slot.height):
|
||||||
char = chr(self.win.inch(j + slot.y_offset, limit) & 255)
|
#char = chr(self.win.inch(j + slot.y_offset, limit) & 255)
|
||||||
attr = color.build('default', shade, 'bold')
|
#attr = color.build('default', shade, 'bold')
|
||||||
self.addstr(j + slot.y_offset, limit + w.mode.lmargin, char, attr)
|
#self.addstr(j + slot.y_offset, limit + w.mode.lmargin, char, attr)
|
||||||
|
self.highlight_char(j + slot.y_offset,
|
||||||
|
limit + w.mode.lmargin,
|
||||||
|
fg='default', bg=shade)
|
||||||
|
|
||||||
def _draw_slot(self, i):
|
def _draw_slot(self, i):
|
||||||
slot = self.bufferlist.slots[i]
|
slot = self.bufferlist.slots[i]
|
||||||
|
|
|
@ -632,7 +632,7 @@ class FileBuffer(Buffer):
|
||||||
f.close()
|
f.close()
|
||||||
self.store_checksum(data)
|
self.store_checksum(data)
|
||||||
data = self.read_filter(data)
|
data = self.read_filter(data)
|
||||||
codec = chardet.detect(data)['encoding'] or 'utf-8'
|
codec = chardet.detect(data).get('encoding') or 'utf-8'
|
||||||
self.codec = codec.lower()
|
self.codec = codec.lower()
|
||||||
else:
|
else:
|
||||||
data = ''
|
data = ''
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
En la literatura española, hay dos personajes de fama universal. Don Quijote es
|
||||||
|
el protagonista central de la primera novela moderna, "El ingenioso hidalgo don
|
||||||
|
Quijote de la Mancha". Esta novela es una sátira de los libros de caballerías,
|
||||||
|
pero representa también una visión total y compleja de la vida española. Don
|
||||||
|
Quijote y su compañero Sancho Panza son antitéticos; donde uno es valiente, el
|
||||||
|
otro es cobarde; donde uno es idealista, el otro es práctico. Los dos se
|
||||||
|
complementan para formar una imagen de España y del espanol del siglo XVII
|
||||||
|
tanto como del español de hoy.
|
||||||
|
|
||||||
|
En cambio don Juan Tenorio, personaje de ficción en dos dramas, uno del siglo
|
||||||
|
XVII y el otro del siglo XIX, es un hombre irrespetuoso, cínico, satirico,
|
||||||
|
irresponsable, egoísta, gran amante de las mujeres, héroe rebelde y finalmente
|
||||||
|
símbolo del machismo latino. Pero es una personalidad que, por su espíritu de
|
||||||
|
independencia, libertad y deseo de romper con los convencionalismos sociales
|
||||||
|
cautiva la imaginación de los españoles y de todo el mundo.
|
|
@ -184,3 +184,26 @@ class Pwd(Method):
|
||||||
w.set_error("Directory %s" % cwd)
|
w.set_error("Directory %s" % cwd)
|
||||||
else:
|
else:
|
||||||
w.set_error("Directory %s/" % os.getcwd())
|
w.set_error("Directory %s/" % os.getcwd())
|
||||||
|
|
||||||
|
class GetBufferCodec(Method):
|
||||||
|
'''Print the buffer's current codec'''
|
||||||
|
def _execute(self, w, **vargs):
|
||||||
|
w.set_error('Codec is %r' % w.buffer.codec)
|
||||||
|
|
||||||
|
class SetBufferCodec(Method):
|
||||||
|
'''Print the buffer's current codec'''
|
||||||
|
args = [arg('codec', p="Codec Name: ",
|
||||||
|
dv=lambda w: w.buffer.codec, h="name of the codec to use")]
|
||||||
|
def _execute(self, w, **vargs):
|
||||||
|
codec = vargs['codec']
|
||||||
|
try:
|
||||||
|
u''.encode(codec)
|
||||||
|
except:
|
||||||
|
w.set_error('%r is not a valid codec' % codec)
|
||||||
|
return
|
||||||
|
w.set_error('Reassigning codec to %r' % codec)
|
||||||
|
u = w.buffer.make_string()
|
||||||
|
s = u.encode(w.buffer.codec)
|
||||||
|
w.buffer.codec = codec
|
||||||
|
u = s.decode(codec)
|
||||||
|
w.buffer.set_data(u, force=True)
|
Loading…
Reference in New Issue