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 '?':