From d4ad637704eae751018225c82c8403f0d9e708a8 Mon Sep 17 00:00:00 2001
From: Stelios Bounanos
Date: Tue, 29 Jan 2008 15:58:15 +0000
Subject: [PATCH] Upstream version 2.08
---
ChangeLog | 61 ++++++++++----------------
configure.ac | 6 +--
src/dialogs/fl_digi.cxx | 97 ++++++++++++++++++-----------------------
src/main.cxx | 28 +++++-------
4 files changed, 82 insertions(+), 110 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ed8e7531..a8a586c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,47 +1,34 @@
Change Log:
-2.08 1) Use PortAudio's C API; the C++ bindings are no longer required
- 2) Boost is no longer required when std::(tr1::)bind is available,
- as is the case with g++ >= 4.0
- 3) Autodetect TLS support
- 4) Switch to the PortAudio C API (portaudiocpp no longer required).
- Improved PortAudio error handling.
- 5) Use std::bind (or std::tr1::bind) if available. Boost no longer
- needed with g++-4.x, still required with with very old compilers
- (g++ 3.x).
- 6) qrunner cleanups
- 7) Add m4 macros for TLS autodetection (the --enable-tls/--disable-tls
- switches are still supported).
- 8) New ringbuffer and other utility code
- 9) New item in the sample rate menu: "Native" selects the hardware's
+2.08 1) Changes to build process:
+ a. Use PortAudio's C API; the C++ bindings are no longer required
+ b. Boost is no longer required when std::(tr1::)bind is available,
+ as is the case with g++ >= 4.0
+ c. Autodetect TLS support
+ d. Use std::bind (or std::tr1::bind) if available.
+ e. Add m4 macros for TLS autodetection (the --enable-tls/--disable-tls
+ switches are still supported).
+ f. Minor changes to configure.ac
+ 2) qrunner cleanups
+ 3) New ringbuffer and other utility code
+ 4) New item in the sample rate menu: "Native" selects the hardware's
preferred sample rate. Breaks backward compatibility: saving this
with fldigi-2.08 will result in an "invalid sample rate" message if
the same fldigi_def.xml file is then used with 2.07 -- until "Auto"
or a specific value is selected again.
- 10) Correction to the waterfall's "casual tuning" feature: don't set the
+ 5) Correction to the waterfall's "casual tuning" feature: don't set the
modem to SIGSEARCH when the right mouse button is released.
- 11) Set locale only for LC_TIME
- 12) Add .desktop, move icons to data/
- 13) Minor changes to configure.ac
- 14) Stacktrace updates Kill a newline in Aborting... message.
- Skip pstack's own frame when printing stack trace.
- 15) Print host API errors
- 16) Add debug_exec
- 17) Fix key bindings loop
- 18) Olivia bug fixes. Set smargin and sinteg to avoid access to
- uninitialised memory. Also set lastfreq to 0 in ctor to avoid
- valgrind warnings
- 19) MFSK bug fixes. Set some variables to avoid accessing uninitialised
- memory. Initialise interleave table with 0s; the original gmfsk code
- used g_new0 to do this. This avoids another access to random bits.
- Fix memory leak by creating the small syms array on the stack.
- Initialise symbolpair[] with 0s in ctor to avoid vargrind warnings
- 20) CW fix. Initialise usedefaultWPM in ctor to avoid valgrind warning
- about conditional jump depending on access to uninitialised memory
- 21) Throb bug fix. Plug a memory leak caused by using the wrong delete
- operator.
- 22) PSK bug fix. Initialise s/n and imd variables.
- 23) Add Olivia settings.
+ 6) Set locale only for LC_TIME
+ 7) Add .desktop, move icons to data/; for deb / rpm build compatibility
+ 8) Exception trapping and print to stdout on program failure
+ 9) Fixes to modem class logic:
+ a. Olivia Corrected uninitialized variables.
+ b. MFSK Corrected uninitialized variables. Fixed memory leak.
+ c. CW Corrected uinitialized variable.
+ d. Throb Fix memory leak caused by using the wrong delete operator.
+ e. PSK Corrected uninitialized variables.
+ 10) Rigcat/Hamlib dialog. Added mode, sideband, and current audio
+ frequency to "saved" frequencies list.
2.07 1) bug fix for mode changes via SysV interface (pskmail / flarq)
2) bug fix for modem configuration post quick change from status
diff --git a/configure.ac b/configure.ac
index 123ee882..1766b380 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,12 +1,12 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 2007 Stelios Bounanos, M0GLD (m0gld AT enotty DOT net)
+AC_COPYRIGHT([Copyright (C) 2007 Stelios Bounanos, M0GLD (m0gld AT enotty DOT net)])
AC_PREREQ(2.61)
-AC_INIT([fldigi], [2.08G], [w1hkj AT w1hkj DOT com])
+AC_INIT([fldigi], [2.08], [w1hkj AT w1hkj DOT com])
AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE([-Wall foreign 1.9.6])
+AM_INIT_AUTOMAKE([-Wall foreign std-options 1.9.6])
AM_MAINTAINER_MODE
AC_CONFIG_SRCDIR([src/main.cxx])
AC_CONFIG_HEADER([src/config.h])
diff --git a/src/dialogs/fl_digi.cxx b/src/dialogs/fl_digi.cxx
index 9b1db69f..dc8ec88b 100644
--- a/src/dialogs/fl_digi.cxx
+++ b/src/dialogs/fl_digi.cxx
@@ -86,39 +86,6 @@
Fl_Double_Window *fl_digi_main=(Fl_Double_Window *)0;
Fl_Help_Dialog *help_dialog = (Fl_Help_Dialog *)0;
-void fldigi_help(string theHelp) {
- if (!help_dialog)
- help_dialog = new Fl_Help_Dialog();
-
- string htmlHelp =
- ""//\n"
- ""//\n"
- "fldigi Help"//\n"
- ""//\n"
- ""//\n"
- ""
- "";
- string postHelp =
- "
"//\n"
- "";//\n";
- string sHelp;
- for (size_t i = 0; i < theHelp.length(); i++)
- if (theHelp[i] == '\n') {
- if (theHelp[i+1] == '\n') {
- sHelp += "
";
- i++;
- } else
- sHelp += "
";//"\n
";
- } else
- sHelp += theHelp[i];
- htmlHelp += sHelp;
- htmlHelp += postHelp;
-
- help_dialog->value(htmlHelp.c_str());
-
- help_dialog->show();
-}
-
cMixer mixer;
bool useCheckButtons = false;
@@ -640,35 +607,57 @@ void cb_mnuVisitURL(Fl_Widget*, void* arg)
restoreFocus();
}
+void html_help( const string &Html)
+{
+ if (!help_dialog)
+ help_dialog = new Fl_Help_Dialog;
+ help_dialog->value(Html.c_str());
+ help_dialog->show();
+}
+
+void fldigi_help(const string& theHelp)
+{
+ string htmlHelp =
+""
+""
+"" PACKAGE " Help"
+""
+""
+""
+"";
+
+ for (size_t i = 0; i < theHelp.length(); i++) {
+ if (theHelp[i] == '\n') {
+ if (theHelp[i+1] == '\n') {
+ htmlHelp += "
";
+ i++;
+ }
+ else
+ htmlHelp += "
";
+ } else if (theHelp[i] == ' ' && theHelp[i+1] == ' ') {
+ htmlHelp += " ";
+ i++;
+ } else
+ htmlHelp += theHelp[i];
+ }
+ htmlHelp +=
+"
"
+""
+"";
+ html_help(htmlHelp);
+}
+
void cb_mnuCmdLineHelp(Fl_Widget*, void*)
{
- extern std::string option_help;
-
+ extern string option_help;
fldigi_help(option_help);
-// fl_message_font(FL_SCREEN, FL_NORMAL_SIZE - 1);
-// fl_message("%s", option_help.c_str());
-// fl_message_font(FL_HELVETICA, FL_NORMAL_SIZE);
-
restoreFocus();
}
void cb_mnuBuildInfo(Fl_Widget*, void*)
{
- extern std::string version_text;
- std::string s = version_text;
- std::string::size_type i = 0;
-
- // escape the at chars
- while ((i = s.find('@', i)) != std::string::npos) {
- s.insert(i, 1, '@');
- i += 2;
- }
-
- fldigi_help(s);
-// fl_message_font(FL_SCREEN, FL_NORMAL_SIZE - 1);
-// fl_message("%s", s.c_str());
-// fl_message_font(FL_HELVETICA, FL_NORMAL_SIZE);
-
+ extern string version_text;
+ fldigi_help(version_text);
restoreFocus();
}
diff --git a/src/main.cxx b/src/main.cxx
index 637800ab..f86ce933 100644
--- a/src/main.cxx
+++ b/src/main.cxx
@@ -291,30 +291,30 @@ void generate_option_help(void) {
ostringstream help;
-// int width = 72;
- help << "Usage:\n"
+ help << "Usage:\n"
<< " " << PACKAGE_NAME << " [option...]\n\n";
help << PACKAGE_NAME << " options:\n\n"
-
- << " --config-dir DIRECTORY\n"
+ << " --config-dir DIRECTORY\n"
<< " Look for configuration files in DIRECTORY\n"
<< " The default is: " << HomeDir << "\n\n"
-
- << " --rx-ipc-key KEY" << "Set the receive message queue key\n"
+
+ << " --rx-ipc-key KEY\n"
+ << " Set the receive message queue key\n"
<< " May be given in hex if prefixed with \"0x\"\n"
<< " The default is: " << progdefaults.rx_msgid
<< " or 0x" << hex << progdefaults.rx_msgid << dec << "\n\n"
- << " --tx-ipc-key KEY" << "Set the transmit message queue key\n"
+ << " --tx-ipc-key KEY\n"
+ << " Set the transmit message queue key\n"
<< " May be given in hex if prefixed with \"0x\"\n"
<< " The default is: " << progdefaults.tx_msgid
<< " or 0x" << hex << progdefaults.tx_msgid << dec << "\n\n"
- << " --version\n"
+ << " --version\n"
<< " Print version information\n\n"
- << " --help\n"
+ << " --help\n"
<< " Print this option help\n\n";
// Fl::help looks ugly so we'll write our own
@@ -332,8 +332,7 @@ void generate_option_help(void) {
<< " format is ``host:n.n''\n\n"
<< " -dn, -dnd or -nodn, -nodnd\n"
- << " Enable or disable drag and drop copy and\n"
- << " paste in text fields\n\n"
+ << " Enable or disable drag and drop copy and paste in text fields\n\n"
<< " -fg COLOR, -foreground COLOR\n"
<< " Set the foreground color\n\n"
@@ -364,9 +363,6 @@ void generate_option_help(void) {
help << "Additional UI options:\n\n"
- // << setw(width) << setiosflags(ios::left)
- // << " --fast-text" << "Use fast text widgets\n"
-
<< " --font FONT[:SIZE]\n"
<< " Set the widget font and (optionally) size\n"
<< " The default is: " << Fl::get_font(FL_HELVETICA)
@@ -523,11 +519,11 @@ int parse_args(int argc, char **argv, int& idx)
return 2;
#endif // USE_PORTAUDIO
case OPT_HELP:
- cerr << option_help;
+ cout << option_help;
exit(EXIT_SUCCESS);
case OPT_VERSION:
- cerr << version_text;
+ cout << version_text;
exit(EXIT_SUCCESS);
case '?':