gengetopt-2.17 has an improved help management, thanks again to Lorenzo
Bettini for implementing my suggestions. The help texts of the options
are contained in an array which is defined in xyz.cmdline.c and declared
as extern in xyz.cmdline.h.
In order to link more than one xyz.cmdline.o into a single binary,
these arrays must have different names. So use the --arg-struct-name
option of gengetopt for each receiver/filter.
%_recv.cmdline.h %_recv.cmdline.c: %_recv.ggo
gengetopt $(module_ggo_opts) \
%_recv.cmdline.h %_recv.cmdline.c: %_recv.ggo
gengetopt $(module_ggo_opts) \
+ --arg-struct-name=$(subst .ggo,,$<)_args_info \
--file-name=$(subst .ggo,,$<).cmdline \
--func-name $(subst .ggo,,$<)_cmdline_parser < $<
%_filter.cmdline.h %_filter.cmdline.c: %_filter.ggo
gengetopt $(module_ggo_opts) \
--file-name=$(subst .ggo,,$<).cmdline \
--func-name $(subst .ggo,,$<)_cmdline_parser < $<
%_filter.cmdline.h %_filter.cmdline.c: %_filter.ggo
gengetopt $(module_ggo_opts) \
+ --arg-struct-name=$(subst .ggo,,$<)_args_info \
--file-name=$(subst .ggo,,$<).cmdline \
--func-name $(subst _filter.ggo,,$<)_cmdline_parser < $<
--file-name=$(subst .ggo,,$<).cmdline \
--func-name $(subst _filter.ggo,,$<)_cmdline_parser < $<
o update to libortp-0.9.1
o update to libortp-0.9.1
+ o update to gengetopt-2.17
+
0.2.11 (2006-03-11) "atomic duality"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0.2.11 (2006-03-11) "atomic duality"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/** the current multiplier */
unsigned current_gain;
/** points to the configuration data for this instance of the compress filter */
/** the current multiplier */
unsigned current_gain;
/** points to the configuration data for this instance of the compress filter */
- struct gengetopt_args_info *conf;
+ struct compress_filter_args_info *conf;
/** minimal admissible gain */
unsigned min_gain;
/** maximal admissible gain */
/** minimal admissible gain */
unsigned min_gain;
/** maximal admissible gain */
static void *compress_parse_config(int argc, char **argv)
{
static void *compress_parse_config(int argc, char **argv)
{
- struct gengetopt_args_info *ret = para_calloc(sizeof(struct gengetopt_args_info));
+ struct compress_filter_args_info *ret = para_calloc(sizeof(struct compress_filter_args_info));
if (!compress_cmdline_parser(argc, argv, ret))
return ret;
free(ret);
if (!compress_cmdline_parser(argc, argv, ret))
return ret;
free(ret);
static int dccp_recv_open(struct receiver_node *rn)
{
struct private_dccp_recv_data *pdd;
static int dccp_recv_open(struct receiver_node *rn)
{
struct private_dccp_recv_data *pdd;
- struct gengetopt_args_info *conf = rn->conf;
+ struct dccp_recv_args_info *conf = rn->conf;
int ret;
struct addrinfo *ai;
char *tmp;
int ret;
struct addrinfo *ai;
char *tmp;
static void *dccp_recv_parse_config(int argc, char **argv)
{
static void *dccp_recv_parse_config(int argc, char **argv)
{
- struct gengetopt_args_info *tmp = para_calloc(sizeof(struct gengetopt_args_info));
+ struct dccp_recv_args_info *tmp = para_calloc(sizeof(struct dccp_recv_args_info));
if (!dccp_recv_cmdline_parser(argc, argv, tmp))
return tmp;
if (!dccp_recv_cmdline_parser(argc, argv, tmp))
return tmp;
static void *http_recv_parse_config(int argc, char **argv)
{
static void *http_recv_parse_config(int argc, char **argv)
{
- struct gengetopt_args_info *tmp = para_calloc(sizeof(struct gengetopt_args_info));
+ struct http_recv_args_info *tmp = para_calloc(sizeof(struct http_recv_args_info));
if (!http_recv_cmdline_parser(argc, argv, tmp))
return tmp;
if (!http_recv_cmdline_parser(argc, argv, tmp))
return tmp;
{
struct private_http_recv_data *phd;
struct hostent *he;
{
struct private_http_recv_data *phd;
struct hostent *he;
- struct gengetopt_args_info *conf = rn->conf;
+ struct http_recv_args_info *conf = rn->conf;
struct sockaddr_in their_addr;
int ret;
struct sockaddr_in their_addr;
int ret;
{
struct private_oggdec_data *pod = para_calloc(
sizeof(struct private_oggdec_data));
{
struct private_oggdec_data *pod = para_calloc(
sizeof(struct private_oggdec_data));
- struct gengetopt_args_info *conf = fn->conf;
+ struct oggdec_filter_args_info *conf = fn->conf;
fn->private_data = pod;
fn->bufsize = conf->bufsize_arg * 1024;
fn->private_data = pod;
fn->bufsize = conf->bufsize_arg * 1024;
{
ssize_t ret;
struct private_oggdec_data *pod = fn->private_data;
{
ssize_t ret;
struct private_oggdec_data *pod = fn->private_data;
- struct gengetopt_args_info *conf = fn->conf;
+ struct oggdec_filter_args_info *conf = fn->conf;
/* make the buffer known to the read callback cb_read() */
pod->inbuf = inbuffer;
pod->inbuf_len = len;
/* make the buffer known to the read callback cb_read() */
pod->inbuf = inbuffer;
pod->inbuf_len = len;
static void *oggdec_parse_config(int argc, char **argv)
{
static void *oggdec_parse_config(int argc, char **argv)
{
- struct gengetopt_args_info *ret = para_calloc(sizeof(struct gengetopt_args_info));
+ struct oggdec_filter_args_info *ret = para_calloc(sizeof(struct oggdec_filter_args_info));
if (!oggdec_cmdline_parser(argc, argv, ret))
return ret;
free(ret);
if (!oggdec_cmdline_parser(argc, argv, ret))
return ret;
free(ret);
- struct gengetopt_args_info *tmp = para_calloc(sizeof(struct gengetopt_args_info));
+ struct ortp_recv_args_info *tmp = para_calloc(sizeof(struct ortp_recv_args_info));
ret = ortp_recv_cmdline_parser(argc, argv, tmp)? -E_ORTP_SYNTAX : 1;
if (ret > 0)
ret = ortp_recv_cmdline_parser(argc, argv, tmp)? -E_ORTP_SYNTAX : 1;
if (ret > 0)
static int ortp_recv_open(struct receiver_node *rn)
{
struct private_ortp_recv_data *pord;
static int ortp_recv_open(struct receiver_node *rn)
{
struct private_ortp_recv_data *pord;
- struct gengetopt_args_info *conf = rn->conf;
+ struct ortp_recv_args_info *conf = rn->conf;
rn->buf = para_calloc(CHUNK_SIZE);
rn->buf = para_calloc(CHUNK_SIZE);