Received this today: -------- Hi Ross,
I'm currently unable to check this issue directly on Debian Unstable, anyway I discovered in the meanwhile that the same identical problem affects Debian Testing and Ubuntu 14.04: all them ships wxWidgets 3.0.x the real cause of this bug is really puzzling: immediately after selecting the Shapefile path the app will then attempt to identify the appropriate platform charset name. the actual code supporting this task is located on libspatialite in -/src/gaiaaux/gg_utf8.c - gaiaGetLocaleCharset() on every Linux this simply ends up in calling nl_langinfo(CODESET) and here happens the puzzling issue: e.g. Fedora (wxGTK-2.8) will return 'UTF-8' exactly as expected. Ubuntu wxGTK-3.0 will return insead 'ANSI_X3.4-1968': AFAIK this simply is an alias name for US-ASCII, anyway it's *not* defined in the standard list of well-known charsets supported by spatialite_gui (based on common iconv definitions) and this causes an invalid pointer to be returned, thus finally causing the reported crash. counter-check: I've just applied this brutal patch on Main.cpp near line 280: - LocaleCharset = wxString::FromUTF8(gaiaGetLocaleCharset()); + LocaleCharset = wxT("UTF-8"); this seems to succesfully eradicate the crash (indirectly confirming that the crash cause is to be identified in the crazy charset name returned bu Ubuntu, and I strongly suspect from Debian as well). I'm absolutely unaware if this odd issue is caused by Debian/Ubuntu or by wxGTK-3.0.x; the ubunu shell apparently reports "UTF-8" as the default charset currently used, and this focuses the strongest suspects on wxGTK-3.0 surely to be investigated in more depth bye Sandro ------- And then: Hi Ross, there is an interesting follow-up: googling around I've found this old Debian ticket: https://lists.debian.org/debian-glibc/2008/08/msg00146.html so it looks that on Debian (and Debian-derived such as Ubuntu) "ANSI_X3.4-1968" is the expected default charset name until the program explicitly asks to import all Locale definitions from the environment. after this the charset name will become "UTF-8" as usually expected. accordingly to all this the most appropriate patch seems to be the following one (to be placed on the very first line of the Main ctor): { // // main GUI frame constructor // + setlocale(LC_ALL, ""); it's just a suspect of my own, but probably wxGTK-2.8 automatically performed this task during its own initialization, whilst wxGTK-3.x doesn't bye Sandro
signature.asc
Description: OpenPGP digital signature