Small patch (attached) fixes the problem. In a nutshell, the 'menu_' array in dialogs/fl_digi.cxx gets prematurely terminated, because 'mode_info[MODE_ANALYSIS].name' ends up as an empty string in the menu_ table. That happens because the 'mode_info' array in globals/globals.cxx uses an internationalized string to fill that value _("Freq Analysis"). Something about the internationalization runtime string juggling breaks down, leaving menu_ broken. Simply using a regular string for "Freq Analysis" fixes all the damage. For the record, I do not understand why this problem is only manifesting now, however that fix seems easy and appropriate. I'll apply this to fldigi 3.21.10 in Debian unstable. Dave, if you would be so kind, please apply it to your main tree as well. 73 de KA6MAL -Kamal
Description: Do not use NLS in mode_info table Author: Kamal Mostafa <kamal@whence.com> Bug-Debian: http://bugs.debian.org/628864 * Fix failure to start up due to NLS problem (Closes: #628864) - do-not-use-nls-in-mode-info-table.patch --- fldigi-3.21.10.orig/src/globals/globals.cxx +++ fldigi-3.21.10/src/globals/globals.cxx @@ -112,7 +112,9 @@ const struct mode_info_t mode_info[NUM_M { MODE_SSB, &ssb_modem, "SSB", "SSB", "", "SSB", "" }, { MODE_WWV, &wwv_modem, "WWV", "WWV", "", "", "" }, - { MODE_ANALYSIS, &anal_modem, "ANALYSIS", _("Freq Analysis"), "", "", "" } + // N.B. it is not valid to use an _("NLS") string in this table!! + // ... doing so will break the Fl_menu_item table 'menu_'. -Kamal + { MODE_ANALYSIS, &anal_modem, "ANALYSIS", "Freq Analysis", "", "", "" } }; std::ostream& operator<<(std::ostream& s, const qrg_mode_t& m)
Attachment:
signature.asc
Description: This is a digitally signed message part