mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-21 10:27:18 +00:00
fix segfault and allow mode listing in rigctl
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2865 7ae35d74-ebe9-4afe-98af-79ac388436b8
This commit is contained in:
parent
a74bc53452
commit
453995e7c0
@ -13,3 +13,9 @@ Here is the list of the brave fellows:
|
||||
* Chuck Hemker N2POR, v1.1.3, 09/2002, src/event.c
|
||||
when using rig_set_trn() and receiving a SIGIO,
|
||||
and having a second non serial rig open.
|
||||
|
||||
* Roeland Th. Jansen PA3MET, v1.2.10, 03/2010, tests/rigctl_parse.c
|
||||
$ rigctl
|
||||
Rig command: M
|
||||
Mode: ?
|
||||
|
||||
|
@ -1431,6 +1431,7 @@ struct rig_state {
|
||||
rmode_t current_mode; /*!< Mode currently set */
|
||||
pbwidth_t current_width; /*!< Passband width currently set */
|
||||
vfo_t tx_vfo; /*!< Tx VFO currently set */
|
||||
int mode_list; /*!< Complete list of modes for this rig */
|
||||
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Hamlib Interface - main file
|
||||
* Copyright (c) 2000-2009 by Stephane Fillod
|
||||
* Copyright (c) 2000-2010 by Stephane Fillod
|
||||
* Copyright (c) 2000-2003 by Frank Singleton
|
||||
*
|
||||
* $Id: rig.c,v 1.103 2009-02-20 14:14:31 fillods Exp $
|
||||
@ -31,7 +31,7 @@
|
||||
* \brief Ham Radio Control Libraries interface
|
||||
* \author Stephane Fillod
|
||||
* \author Frank Singleton
|
||||
* \date 2000-2009
|
||||
* \date 2000-2010
|
||||
*
|
||||
* Hamlib provides a user-callable API, a set of "front-end" routines that
|
||||
* call rig-specific "back-end" routines which actually communicate with
|
||||
@ -83,7 +83,7 @@ const char hamlib_version[21] = "Hamlib " PACKAGE_VERSION;
|
||||
* \brief Hamlib copyright notice
|
||||
*/
|
||||
const char hamlib_copyright[231] = /* hamlib 1.2 ABI specifies 231 bytes */
|
||||
"Copyright (C) 2000-2009 Stephane Fillod\n"
|
||||
"Copyright (C) 2000-2010 Stephane Fillod\n"
|
||||
"Copyright (C) 2000-2003 Frank Singleton\n"
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.";
|
||||
@ -344,11 +344,14 @@ RIG * HAMLIB_API rig_init(rig_model_t rig_model)
|
||||
}
|
||||
|
||||
rs->vfo_list = 0;
|
||||
rs->mode_list = 0;
|
||||
for (i=0; i<FRQRANGESIZ && !RIG_IS_FRNG_END(rs->rx_range_list[i]); i++) {
|
||||
rs->vfo_list |= rs->rx_range_list[i].vfo;
|
||||
rs->mode_list |= rs->rx_range_list[i].modes;
|
||||
}
|
||||
for (i=0; i<FRQRANGESIZ && !RIG_IS_FRNG_END(rs->tx_range_list[i]); i++) {
|
||||
rs->vfo_list |= rs->tx_range_list[i].vfo;
|
||||
rs->mode_list |= rs->tx_range_list[i].modes;
|
||||
}
|
||||
|
||||
memcpy(rs->preamp, caps->preamp, sizeof(int)*MAXDBLSTSIZ);
|
||||
|
@ -752,14 +752,13 @@ declare_proto_rig(set_mode)
|
||||
rmode_t mode;
|
||||
pbwidth_t width;
|
||||
|
||||
#if 0
|
||||
if (!strcmp(arg1, "?")) {
|
||||
char s[SPRINTF_MAX_SIZE];
|
||||
sprintf_mode(s, rig->state.modes);
|
||||
sprintf_mode(s, rig->state.mode_list);
|
||||
fprintf(fout, "%s\n", s);
|
||||
return RIG_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
mode = rig_parse_mode(arg1);
|
||||
sscanf(arg2, "%ld", &width);
|
||||
return rig_set_mode(rig, vfo, mode, width);
|
||||
@ -1031,14 +1030,13 @@ declare_proto_rig(set_split_mode)
|
||||
int width;
|
||||
vfo_t txvfo = RIG_VFO_TX;
|
||||
|
||||
#if 0
|
||||
if (!strcmp(arg1, "?")) {
|
||||
char s[SPRINTF_MAX_SIZE];
|
||||
sprintf_mode(s, rig->state.modes);
|
||||
sprintf_mode(s, rig->state.mode_list);
|
||||
fprintf(fout, "%s\n", s);
|
||||
return RIG_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
mode = rig_parse_mode(arg1);
|
||||
sscanf(arg2, "%d", &width);
|
||||
return rig_set_split_mode(rig, txvfo, mode, (pbwidth_t) width);
|
||||
|
Loading…
Reference in New Issue
Block a user