# HG changeset patch
# User Sune Foldager <[email protected]>
# Date 1257940776 -3600
# Branch stable
# Node ID 4366d06668022991d05105433cb986224bcf9d4b
# Parent ecf1189f9fab6f166b735d50808f40ef23adf6b2
fix 80-char limiting of utf-8 encoded strings
The limit was applied to the native encoded string, which not only calculates
the wrong
length but also makes GTK crash badly if a code point is cut in half, when the
native
encoding was UTF-8.
diff --git a/tortoisehg/hgtk/changeset.py b/tortoisehg/hgtk/changeset.py
--- a/tortoisehg/hgtk/changeset.py
+++ b/tortoisehg/hgtk/changeset.py
@@ -447,8 +447,8 @@
return gtklib.markup(revid, **opts)
def data_func(widget, item, ctx):
def summary_line(desc):
- desc = desc.replace('\0', '')
- return hglib.toutf(desc.split('\n')[0][:80])
+ desc = hglib.tounicode(desc.replace('\0', '').split('\n')[0])
+ return hglib.toutf(desc[:80])
def revline_data(ctx, hl=False, branch=None):
if isinstance(ctx, basestring):
return ctx
diff --git a/tortoisehg/hgtk/csinfo.py b/tortoisehg/hgtk/csinfo.py
--- a/tortoisehg/hgtk/csinfo.py
+++ b/tortoisehg/hgtk/csinfo.py
@@ -220,11 +220,11 @@
elif item == 'desc':
return hglib.toutf(ctx.description().replace('\0', ''))
elif item == 'summary':
- desc = self.get_data('desc', *args)
- value = desc.split('\n')[0][:80]
+ value = ctx.description().replace('\0', '').split('\n')[0]
+ value = hglib.tounicode(value[:80])
if len(value) == 0:
return None
- return value
+ return hglib.toutf(value)
elif item == 'user':
return hglib.toutf(ctx.user())
elif item == 'dateage':
diff --git a/tortoisehg/hgtk/hgcmd.py b/tortoisehg/hgtk/hgcmd.py
--- a/tortoisehg/hgtk/hgcmd.py
+++ b/tortoisehg/hgtk/hgcmd.py
@@ -28,7 +28,7 @@
self.cmdlist = []
title = text or ' '.join(cmdline)
if len(title) > 80:
- title = title[:80] + '...'
+ title = hglib.tounicode(title)[:80] + '...'
title = hglib.toutf(title.replace('\n', ' '))
gtk.Dialog.__init__(self, title=title, flags=gtk.DIALOG_MODAL)
self.set_has_separator(False)
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop