All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ismail Dönmez" <ismail@pardus.org.tr>
To: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Cc: Benjamin Close <Benjamin.Close@clearchain.com>,
	Jakub Narebski <jnareb@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Alexandre Julliard <julliard@winehq.org>,
	git@vger.kernel.org,
	Perl Unicode Mailing List <perl-unicode@perl.org>,
	Dan Kogai <dankogai@dan.co.jp>
Subject: Re: Fix UTF Encoding issue
Date: Tue, 4 Dec 2007 10:12:50 +0200	[thread overview]
Message-ID: <200712041012.50935.ismail@pardus.org.tr> (raw)
In-Reply-To: <20071204080407.GC31042@auto.tuwien.ac.at>

Tuesday 04 December 2007 10:04:07 Martin Koegler yazmıştı:
> On Tue, Dec 04, 2007 at 08:16:24AM +1030, Benjamin Close wrote:
> > Jakub Narebski wrote:
> > >On Mon, 3 Dec 2007, Martin Koegler wrote:
> > >>On Mon, Dec 03, 2007 at 04:06:48AM -0800, Jakub Narebski wrote:
> > >>>Ismail Dönmez <ismail@pardus.org.tr> writes:
> > >>>>Monday 03 December 2007 Tarihinde 12:14:43 yazm??t?:
> > >>>>>Benjamin Close <Benjamin.Close@clearchain.com> writes:
> > >>>>>>-	eval { $res = decode_utf8($str, Encode::FB_CROAK); };
> > >>>>>>-	if (defined $res) {
> > >>>>>>-		return $res;
> > >>>>>>-	} else {
> > >>>>>>-		return decode($fallback_encoding, $str,
> > >>>>>>Encode::FB_DEFAULT);
> > >>>>>>-	}
> > >>>>>>+	eval { return ($res = decode_utf8($str, Encode::FB_CROAK));
> > >>>>>>};
> > >>>>>>+	return decode($fallback_encoding, $str, Encode::FB_DEFAULT);
> > >>>>>> }
> > >>
> > >>This version is broken on Debian sarge and etch. Feeding a UTF-8 and a
> > >>latin1
> > >>encoding of the same character sequence yields to different results.
> >
> > For the record, this was on a debian sid machine.
> >
> > #perl --version
> > This is perl, v5.8.8 built for x86_64-linux-gnu-thread-multi
> >
> > and the result of not using the original patch was:
> >
> > <h1>Software error:</h1>
> > <pre>Cannot decode string with wide characters at
> > /usr/lib/perl/5.8/Encode.pm line 166.
> > </pre>
> >
> >
> > I haven't tried the other solutions tested here.
>
> Debian etch also has v5.8.8.
>
> My main question is, why is the error not catched?
>
> I'm not a perl programmer, but in your patch the first line is a
> NOP. The return in eval seems to only returns from the eval block, so
> any text is decoded as latin1 with the second statement.
>
> In the original version, decode($fallback_encoding, $str,
> Encode::FB_DEFAULT) can not emit an error, else it would in your
> version too.
>
> In your version, eval is able to surpress the error of
> decode_utf8($str, Encode::FB_CROAK);, but not in the original version.

I think just a better method is to use (not tested):

if( is_utf8($str) ) 
{
	return decode_utf8($str);
}
else {
	return decode($str);
}

Regards,
ismail

-- 
Never learn by your mistakes, if you do you may never dare to try again.

  reply	other threads:[~2007-12-04  8:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-03 10:02 Fix UTF Encoding issue Benjamin Close
2007-12-03 10:14 ` Junio C Hamano
2007-12-03 11:32   ` Ismail Dönmez
2007-12-03 12:06     ` Jakub Narebski
2007-12-03 16:38       ` Martin Koegler
2007-12-03 17:02         ` Jakub Narebski
2007-12-03 21:46           ` Benjamin Close
2007-12-03 22:20             ` Ismail Dönmez
2007-12-03 23:04               ` Benjamin Close
2007-12-03 23:37                 ` Jakub Narebski
2007-12-04  4:12                   ` Ismail Dönmez
2007-12-04  8:04             ` Martin Koegler
2007-12-04  8:12               ` Ismail Dönmez [this message]
2007-12-04  8:20                 ` Martin Koegler
2007-12-04  7:50           ` Martin Koegler
2007-12-04  7:55             ` Ismail Dönmez
2007-12-04  8:16               ` Martin Koegler
2007-12-04  8:28                 ` Ismail Dönmez
2007-12-04  8:33                   ` Ismail Dönmez
2007-12-04  8:44                     ` Martin Koegler
2007-12-04  8:47                       ` Ismail Dönmez
2007-12-04  8:55                         ` Ismail Dönmez
2007-12-04  9:07                           ` Jakub Narebski
2007-12-04 10:11                           ` Wincent Colaiuta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200712041012.50935.ismail@pardus.org.tr \
    --to=ismail@pardus.org.tr \
    --cc=Benjamin.Close@clearchain.com \
    --cc=dankogai@dan.co.jp \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jnareb@gmail.com \
    --cc=julliard@winehq.org \
    --cc=mkoegler@auto.tuwien.ac.at \
    --cc=perl-unicode@perl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.