[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#628864: Seg fault on get_menu_item / Debian Bug#628864: Fldigi fails to start, gives getMenuItem error



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


Reply to: