Re: [Nautilus-list] Some RH patches.
- From: Yanko Kaneti <yaneti declera com>
- To: Owen Taylor <otaylor redhat com>
- Cc: Alex Larsson <alexl redhat com>, nautilus-list lists eazel com
- Subject: Re: [Nautilus-list] Some RH patches.
- Date: 04 Sep 2001 03:13:13 +0300
On Tue, 2001-09-04 at 01:03, Owen Taylor wrote:
>
> Alex Larsson <alexl redhat com> writes:
>
> > + const nsString str (uniStr);
> > + sSize = str.Length ();
> > +
> > + /* allocate a wide string big enough to hold the unicode string,
> > + * this is necessary since wchar_t is 32-bits with glibc */
> > + wide = g_new0 (wchar_t, sSize + 1);
> > + for (i = 0; i < sSize + 1; i++) {
> > + wide[i] = uniStr[i];
> > + }
> > +
> > + /* use glibc function to determine the size of this string once
> > + * encoded to a locale specfic multibyte string */
> > + count = wcstombs (NULL, wide, 0);
> > +
> > + /* check for success */
> > + if (count == -1) {
> > + /* let Mozilla do a (lossy) conversion then */
> > + nsCString str;
> > + str.AssignWithConversion (uniStr);
> > + g_free (wide);
> > + return g_strdup (str.get ()); /* FIXME strdup needed? */
> > + /* Phil: Oh Yes! indeed. */
> > + }
>
> This code is not portable since it assumes the wchar_t is ISO-10646.
>
> You can surround it with:
>
> #ifdef __STDC_ISO_10646__
>
> But I'm not sure what you'd do as a fallback ... handle ascii only?
>
> (Also there is a question here whether the Mozilla string is UCS-2,
> or UTF-16 with possible surrogate pairs.)
>
would like to point out that the code in question is changed in galeon
cvs to use the mozilla conversion facilities
more info:
http://bugzilla.gnome.org/show_bug.cgi?id=59320
regards
yanko
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]