Re: [Nautilus-list] Some RH patches.



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]