setlocale and nl_langinfo
Perry Smith
pedz at easesoftware.net
Fri Jul 16 14:53:23 EDT 2004
Progress so far:
When gnucash starts up, it calls setlocale nine times from various
places. setlocale takes two arguments. The two arguments are:
1) 0 "" (r4 is a pointer to an empty string)
2) 0 ""
3) 2 0 (r4 is 0 -- FYI, r3 is the first arg, r4 is the second arg on
a PPC)
4) 0 ""
5) 0 0
6) 2 0
7) 4 0
8) 4 "C"
9 4 "C"
My LANG is set to C. From gdb, I called nl_langinfo(0) after each of
these calls finished. In the first three, I got a reasonable US-ASCII
reply. After call #4, nl_langinfo(0) returns a pointer to an empty
string.
Here is the stack trace at the entry of the fourth call to setlocal:
(gdb) where
#0 0x90021164 in setlocale ()
#1 0x0101a25c in gdk_set_locale () at gdkim.c:110
#2 0x013b82b0 in gnome_init_cb ()
#3 0x00112c28 in invokeCallbacks ()
#4 0x0011272c in poptGetContext ()
#5 0x004734bc in gnomelib_parse_args ()
#6 0x013b7e70 in gnome_init_with_popt_table ()
#7 0x02f28c84 in gnc_gnome_init (arg0=0x0, progname=0x0,
version=0x47a568 "", command_line=0x1) at gnc-gnome-utils.c:88
#8 0x031b2928 in gnc_gui_init_splash (command_line=0x0) at
top-level.c:303
#9 0x000c7354 in gw__tmp803_gnc_gui_init_splash_wrapper
(gw__scm_arg0=0x0) at gw-gnc.c:382
#10 0x0017439c in scm_ceval (x=0x2974, env=0x7fe48) at eval.c:2736
#11 0x001737b8 in scm_ceval (x=0x2974, env=0x7fe48) at eval.c:2437
#12 0x00172568 in scm_ceval (x=0x2974, env=0x7fe48) at eval.c:2017
#13 0x001724ec in scm_ceval (x=0x2974, env=0x7fe48) at eval.c:1987
#14 0x0016aa34 in scm_internal_dynamic_wind (before=0x9c9c8, inner=0,
after=0x2974 <_dyld_init_check+4>, inner_data=0x7fe48,
guard_data=0x2974) at dynwind.c:168
#15 0x001ab898 in scm_shell (argc=641480, argv=0x2974) at script.c:676
#16 0x0018dc68 in invoke_main_func (body_data=0x24002422) at init.c:636
#17 0x0018dc1c in scm_boot_guile_1 (base=0x0, closure=0xbfffe3e0) at
init.c:616
#18 0x0018d958 in scm_boot_guile (argc=0, argv=0x102c310,
main_func=0x1f0, closure=0x1) at init.c:440
#19 0x00002d84 in main (argc=276736, argv=0xbfffe510) at guile.c:94
My current thoughts are that I have stumbled into a more general
problem than getting the back end to work. I would appear to me that
by the time gnucash displays the account ledgers, the local has been
trashed -- at least on a Mac (or perhaps I should say -- at least on My
Mac :-)
I know very little about locale stuff. I plan to look at gdkim.c a bit
but any help and advice would be appreciated.
Thanks,
Perry
More information about the gnucash-devel
mailing list