On Monday 4 January 2010, Christian Stimming wrote: > Am Montag, 4. Januar 2010 schrieb Derek Atkins: > > > The first compile problem with r18541 is one of many guile-1.6 > > > functions which Geert replaced with their non-deprecated guile-1.8 > > > counterparts, such as SCM_NFALSEP -> scm_is_true. But even if we > > > reverted all of that "cosmetics", the main part of fixing bug#582325 is > > > still a problem because guile-1.6 doesn't have scm_to_locale_string. > > > Or, in other words, bug#582325 doesn't occur in guile-1.6 but only in > > > the recent guile-1.8 but there it can be fixed only by using a new > > > guile function which is not yet available in the old guile version. > > > > > > Maybe we should provide a #define workaround for scm_to_locale_string > > > if guile-1.6 is detected, and (unfortunately) revert the rest of the > > > renamings? > > > > Maybe we should do what David Hampton did and just recreate a > > guile-compat.h that we can use to provide a guile-1.8 compatibility for > > guile-1.6? > > Yes, I've committed something like this just right now. > > > What does scm_to_locale_string() do? > > Dunno. The explanation at bug#582325 contains some text about this. > > Regards, > > Christian > _______________________________________________ > gnucash-devel mailing list > gnucash-devel@gnucash.org > https://lists.gnucash.org/mailman/listinfo/gnucash-devel >
My apologies for leaving you guys with this mess... I didn't realize that the 1.8 replacement functions were not available in 1.6. scm_locale_to_string is a function that converts an SCM variable into a C- compatible string. This is exactly what the older SCM_STRING_CHARS did as well. On recent distributions (Fedora 12, Mandriva 2009.1,...), GnuCash started crashing on SCM_STRING_CHARS, although this is not purely due to SCM_STRING_CHARS itself. As of guile 1.8.6 there is a change in guile's symbol->string function that makes it incompatible with SCM_STRING_CHARS. A lot of guile code in GnuCash uses symbol->string in combination with SCM_STRING_CHARS, which doesn't work anymore as of Guile 1.8.6. As SCM_STRING_CHARS was marked as deprecated, I figured the easiest solution would be to replace it with its proposed new equivalent (which also is more i10n compliant). As said, I didn't fully realize this change was incompatible with guile 1.6. I should have checked that. Is the problem sufficiently solved with Christian's guile-compat.h fix ? If not, I can look into an alternative solution. Regards, Geert (who is learning every day...) _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel