pango_layout_set_text
Neil Williams
linux at codehelp.co.uk
Tue Mar 15 07:51:52 EST 2005
On Monday 14 March 2005 2:09 pm, Josh Sled wrote:
> On Wed, 2005-03-02 at 05:36, Neil Williams wrote:
> > To me, it seems that we are passing a const char * to
> > pango_layout_set_text() when it is expecting a UTF-8 wchar_t wide char
> > string.
>
> Actually, I think that's slightly wrong. pango wants UTF-8 strings,
> which conveniently fit into char* ... since the whole point of UTF-8 was
> to traffic ASCII unmodified and everything else within ASCII [via
> escaped multi-character sequences].
>
> The wchar_t types are a different, 32-bits-per-character [!] type that I
> believe is UCS-4 encoding.
>
> I'm almost positive we want UTF-8.
OK.
> > Is this a character set issue (i.e. am I the only one seeing this) or
> > should these functions be converting const char to const wchar_t* using
> > the C library before calling pango?
>
> Hmm. I'm not sure where this is creeping in. I'm definitely not seeing
> the warnings, so it may be something on your side or in non-US locale
> [which I should have but didn't check yesterday].
Can you try with LANG=en_GB and see what you get?
When I load gnucash, I get four pango errors. Then when I've got a file
loaded, I get a series every single time I move the mouse over the account
icons in the main window.
The only way I clear the errors is if I use:
$ unset LANG
or
$ export LANG=C
(i.e. if I select a LANG value that isn't supported, it is fine.)
:-(
Then every pango error disappears.
What's your LANG value in your environment?
> Do you see the issues on new-file-creation?
$ unset LANG
$ ./gnucash --nofile
no pango errors (just the usual GLib ones).
$ export LANG=en_GB
$ ./gnucash --nofile
gnucash:25918): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()
(repeats 4 times - the very last warnings of the --nofile output.)
Before any file is even loaded. Can you reproduce that?
> Can you isolate the source of the strings?
Every single string seems affected - there are so many that I really cannot
identify them. Every menu action, every mouseover action seems to bring up
about 6 and they quickly scroll passed to the point that I can't tell even if
they are new or not.
> Certainly both US and English date strings should be ASCII-only.
Now this is interesting, I exported LANG=C and started GnuCash with --nofile.
I changed the accounts date format to UK without problem. I changed the new
account currency and default report currency to GBP without problem. I go to
Fancy Date Format and merely selecting UK (31/12/2001) brings up
(gnucash:26026): Pango-WARNING **: Invalid UTF-8 string passed to
pango_layout_set_text()
That is the ONLY pango warning on the screen at this point.
Now suddenly, I can see the balances of my accounts in GBP when this has never
been possible before. (Yes, that's right, up until now I thought that the G2
port wasn't ready to display account balances in GBP! Sorry!)
I get no further pango errors in usage.
> ...jsled
--
Neil Williams
=============
http://www.dcglug.org.uk/
http://www.nosoftwarepatents.com/
http://sourceforge.net/projects/isbnsearch/
http://www.neil.williamsleesmill.me.uk/
http://www.biglumber.com/x/web?qs=0x8801094A28BCB3E3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20050315/b860ceb6/attachment.bin
More information about the gnucash-devel
mailing list