[PATCH STABLE] churn: compute padding with unicode strings
Isaac Jurado
diptongo at gmail.com
Sun Apr 20 09:18:49 CDT 2014
El 20/04/2014 15:36, "Yuya Nishihara" <yuya at tcha.org> escribió:
>
> On Sun, 20 Apr 2014 01:03:25 +0200, Isaac Jurado wrote:
> > # HG changeset patch
> > # User Isaac Jurado <diptongo at gmail.com>
> > # Date 1397913085 -7200
> > # Sat Apr 19 15:11:25 2014 +0200
> > # Branch stable
> > # Node ID 66336e9c96377ca6e48f54d33390c1bcd24b209d
> > # Parent d924e387604f4a1b90469de773517841eba40c80
> > churn: compute padding with unicode strings
> >
> > Most UTF-8 aware terminals convert multibyte sequences into a single
displayed
> > characters. Because the first column is padded by counting bytes, the
second
> > column is not perfectly aligned in the presence of non ASCII characters.
> >
> > diff --git a/hgext/churn.py b/hgext/churn.py
> > --- a/hgext/churn.py
> > +++ b/hgext/churn.py
> > @@ -10,6 +10,7 @@
> >
> > from mercurial.i18n import _
> > from mercurial import patch, cmdutil, scmutil, util, templater,
commands
> > +from mercurial import encoding
> > import os
> > import time, datetime
> >
> > @@ -124,7 +125,7 @@
> > Aliases will be split from the rightmost "=".
> > '''
> > def pad(s, l):
> > - return (s + " " * l)[:l]
> > + return (s.decode("UTF-8") + u" " *
l)[:l].encode(encoding.encoding)
>
> It seems "s" isn't a utf8 bytes because it is a template output. And
> encoding.colwidth() will give more accurate result.
>
> http://mercurial.selenic.com/wiki/EncodingStrategy#Functions
You're right. I didn't understand completely the functions in the encoding
module. I'll check de wiki entry and take a deeper look. Will resend
later today.
Thanks a lot for the review.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20140420/b582b233/attachment.html>
More information about the Mercurial-devel
mailing list