On Mon 02 Sep 2013 10:48, Richard Shann <richard.sh...@virgin.net> writes:
> On Thu, 2013-08-22 at 12:14 -0700, Mike Gran wrote: >> >> 2. In the inner_main of your scm_with_guile call, >> >> >> try calling scm_setlocale. Maybe something like this? >> >> (This shouldn't make a difference, I think. >> >> But, if it does, it says something interesting.) >> >> >> >> scm_setlocale( scm_variable_ref(scm_c_lookup("LC_ALL")), >> > scm_from_locale_string("") ); >> > >> >> If that actually works, lemme know. >> > >> > I just pasted the above into the start of inner_main() and like magic, >> > it has fixed the problem. Is this call ok for guile-1.8 linking too? >> >> I'm not 100% sure, but, I think so. > > I have located a problem which arises I think when LC_ALL is not set > (the actual circumstance I triggered by setting LANG to a language not > installed): > > 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< > Backtrace: > In ice-9/boot-9.scm: > 149: 2 [catch #t #<catch-closure 19194e0> ...] > 157: 1 [#<procedure 18b80f0 ()>] > In unknown file: > ?: 0 [catch-closure] > > ERROR: In procedure catch-closure: > ERROR: In procedure setlocale: Invalid argument > 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< const char prog[] = "(catch #t (lambda () (setlocale LC_ALL \"\")) (lambda _ (display \"Locale not supported by the C library. Falling back to default \\\"C\\\" locale.\\n\" (current-error-port))))"; scm_c_eval_string (prog); Andy -- http://wingolog.org/