kopia lustrzana https://github.com/Hamlib/Hamlib
Implement exit status according to manual page:
1 if there was an invalid command line option or argument; 2 if an error was returned by Hamlib. git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3009 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.13
rodzic
9270c122e7
commit
8690fb0594
|
@ -96,6 +96,7 @@ int main (int argc, char *argv[])
|
|||
rig_model_t my_model = RIG_MODEL_DUMMY;
|
||||
|
||||
int retcode; /* generic return code from functions */
|
||||
int exitcode;
|
||||
|
||||
int verbose = 0;
|
||||
int show_conf = 0;
|
||||
|
@ -320,15 +321,19 @@ int main (int argc, char *argv[])
|
|||
rig_debug(RIG_DEBUG_VERBOSE, "Backend version: %s, Status: %s\n",
|
||||
my_rig->caps->version, rig_strstatus(my_rig->caps->status));
|
||||
|
||||
exitcode = 0;
|
||||
|
||||
do {
|
||||
retcode = rigctl_parse(my_rig, stdin, stdout, argv, argc);
|
||||
if (retcode == 2)
|
||||
exitcode = 2;
|
||||
}
|
||||
while (retcode == 0);
|
||||
while (retcode == 0 || retcode == 2);
|
||||
|
||||
rig_close(my_rig); /* close port */
|
||||
rig_cleanup(my_rig); /* if you care about memory */
|
||||
|
||||
return 0;
|
||||
return exitcode;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -406,7 +406,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
vfo = rig_parse_vfo(argv[optind++]);
|
||||
}
|
||||
|
@ -430,7 +430,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p1 = argv[optind++];
|
||||
}
|
||||
|
@ -446,7 +446,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p1 = argv[optind++];
|
||||
}
|
||||
|
@ -462,7 +462,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p2 = argv[optind++];
|
||||
}
|
||||
|
@ -478,7 +478,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p3 = argv[optind++];
|
||||
}
|
||||
|
@ -493,7 +493,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
#endif
|
||||
|
||||
if (!prompt)
|
||||
rig_debug(RIG_DEBUG_TRACE, "rigctl(d): %c '0x%02x' '%s' '%s' '%s'\n",
|
||||
rig_debug(RIG_DEBUG_TRACE, "rigctl(d): %c '%s' '%s' '%s' '%s'\n",
|
||||
cmd, rig_strvfo(vfo), p1?p1:"", p2?p2:"", p3?p3:"");
|
||||
|
||||
/*
|
||||
|
@ -554,7 +554,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
|
||||
fflush(fout);
|
||||
|
||||
return 0;
|
||||
return retcode != RIG_OK ? 2 : 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1198,12 +1198,15 @@ declare_proto_rig(set_level)
|
|||
}
|
||||
|
||||
level = rig_parse_level(arg1);
|
||||
if (RIG_LEVEL_NONE == level)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
if (!rig_has_set_level(rig, level)) {
|
||||
const struct confparams *cfp;
|
||||
|
||||
cfp = rig_ext_lookup(rig, arg1);
|
||||
if (!cfp)
|
||||
return -RIG_EINVAL; /* no such parameter */
|
||||
return -RIG_ENAVAIL; /* no such parameter */
|
||||
|
||||
switch (cfp->type) {
|
||||
case RIG_CONF_BUTTON:
|
||||
|
@ -1248,6 +1251,9 @@ declare_proto_rig(get_level)
|
|||
}
|
||||
|
||||
level = rig_parse_level(arg1);
|
||||
if (RIG_LEVEL_NONE == level)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
if (!rig_has_get_level(rig, level)) {
|
||||
const struct confparams *cfp;
|
||||
|
||||
|
@ -1310,6 +1316,9 @@ declare_proto_rig(set_func)
|
|||
}
|
||||
|
||||
func = rig_parse_func(arg1);
|
||||
if (RIG_FUNC_NONE == func)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
CHKSCN1ARG(sscanf(arg2, "%d", &func_stat));
|
||||
return rig_set_func(rig, vfo, func, func_stat);
|
||||
}
|
||||
|
@ -1329,6 +1338,9 @@ declare_proto_rig(get_func)
|
|||
}
|
||||
|
||||
func = rig_parse_func(arg1);
|
||||
if (RIG_FUNC_NONE == func)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
status = rig_get_func(rig, vfo, func, &func_stat);
|
||||
if (status != RIG_OK)
|
||||
return status;
|
||||
|
@ -1353,6 +1365,8 @@ declare_proto_rig(set_parm)
|
|||
}
|
||||
|
||||
parm = rig_parse_parm(arg1);
|
||||
if (RIG_PARM_NONE == parm)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
if (!rig_has_set_parm(rig, parm)) {
|
||||
const struct confparams *cfp;
|
||||
|
@ -1404,6 +1418,9 @@ declare_proto_rig(get_parm)
|
|||
}
|
||||
|
||||
parm = rig_parse_parm(arg1);
|
||||
if (RIG_PARM_NONE == parm)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
if (!rig_has_get_parm(rig, parm)) {
|
||||
const struct confparams *cfp;
|
||||
|
||||
|
@ -1498,6 +1515,9 @@ declare_proto_rig(vfo_op)
|
|||
}
|
||||
|
||||
op = rig_parse_vfo_op(arg1);
|
||||
if (RIG_OP_NONE == op)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
return rig_vfo_op(rig, vfo, op);
|
||||
}
|
||||
|
||||
|
|
|
@ -479,7 +479,7 @@ void * handle_socket(void *arg)
|
|||
if (ferror(fsockin) || ferror(fsockout))
|
||||
retcode = 1;
|
||||
}
|
||||
while (retcode == 0);
|
||||
while (retcode == 0 || retcode == 2);
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "Connection closed from %s:%d\n",
|
||||
inet_ntoa(handle_data_arg->cli_addr.sin_addr),
|
||||
|
|
|
@ -81,6 +81,7 @@ int main (int argc, char *argv[])
|
|||
rot_model_t my_model = ROT_MODEL_DUMMY;
|
||||
|
||||
int retcode; /* generic return code from functions */
|
||||
int exitcode;
|
||||
|
||||
int verbose = 0;
|
||||
int show_conf = 0;
|
||||
|
@ -228,15 +229,19 @@ int main (int argc, char *argv[])
|
|||
rig_debug(RIG_DEBUG_VERBOSE, "Backend version: %s, Status: %s\n",
|
||||
my_rot->caps->version, rig_strstatus(my_rot->caps->status));
|
||||
|
||||
exitcode = 0;
|
||||
|
||||
do {
|
||||
retcode = rotctl_parse(my_rot, stdin, stdout, argv, argc);
|
||||
if (retcode == 2)
|
||||
exitcode = 2;
|
||||
}
|
||||
while (retcode == 0);
|
||||
while (retcode == 0 || retcode == 2);
|
||||
|
||||
rot_close(my_rot); /* close port */
|
||||
rot_cleanup(my_rot); /* if you care about memory */
|
||||
|
||||
return 0;
|
||||
return exitcode;
|
||||
}
|
||||
|
||||
void usage()
|
||||
|
|
|
@ -318,7 +318,7 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p1 = argv[optind++];
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p1 = argv[optind++];
|
||||
}
|
||||
|
@ -349,7 +349,7 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p2 = argv[optind++];
|
||||
}
|
||||
|
@ -365,7 +365,7 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p3 = argv[optind++];
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
if (!argv[optind]) {
|
||||
fprintf(stderr, "Invalid arg for command '%s'\n",
|
||||
cmd_entry->name);
|
||||
exit(2);
|
||||
exit(1);
|
||||
}
|
||||
p4 = argv[optind++];
|
||||
}
|
||||
|
@ -457,7 +457,7 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, char *argv[], int argc)
|
|||
|
||||
fflush(fout);
|
||||
|
||||
return 0;
|
||||
return retcode != RIG_OK ? 2 : 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -394,7 +394,7 @@ void * handle_socket(void *arg)
|
|||
if (ferror(fsockin) || ferror(fsockout))
|
||||
retcode = 1;
|
||||
}
|
||||
while (retcode == 0);
|
||||
while (retcode == 0 || retcode == 2);
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "Connection closed from %s:%d\n",
|
||||
inet_ntoa(handle_data_arg->cli_addr.sin_addr),
|
||||
|
|
Ładowanie…
Reference in New Issue