aboutsummaryrefslogtreecommitdiff
path: root/src/sg_senddiag.c
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2018-06-29 09:46:13 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2018-06-29 09:46:13 +0000
commit3ef8550a26c95c97f9fdc4ef249a5767fd573e7a (patch)
treeae1e82f2ff36a06a02184a3eeb19cffe217fcb2f /src/sg_senddiag.c
parent11f6f1f439415e57696f473b1475f190018741c7 (diff)
downloadsg3_utils-3ef8550a26c95c97f9fdc4ef249a5767fd573e7a.tar.gz
sg_opcode: support MLU, Multiple Logical Units (18-045r1); sg_lib: sg_simple_inquiry_pt(); ./configure: option --enable-debug added for testing
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@779 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'src/sg_senddiag.c')
-rw-r--r--src/sg_senddiag.c40
1 files changed, 30 insertions, 10 deletions
diff --git a/src/sg_senddiag.c b/src/sg_senddiag.c
index a66ab0bd..60144e12 100644
--- a/src/sg_senddiag.c
+++ b/src/sg_senddiag.c
@@ -31,7 +31,7 @@
#include "sg_pr2serr.h"
-static const char * version_str = "0.62 20180523";
+static const char * version_str = "0.63 20180628";
#define ME "sg_senddiag: "
@@ -66,15 +66,16 @@ struct opts_t {
bool do_pf;
bool do_raw;
bool do_uoff;
- bool do_version;
bool opt_new;
+ bool verbose_given;
+ bool version_given;
int do_help;
int do_hex;
int maxlen;
int page_code;
int do_selftest;
int timeout;
- int do_verbose;
+ int verbose;
const char * device_name;
const char * raw_arg;
};
@@ -246,10 +247,11 @@ new_parse_cmd_line(struct opts_t * op, int argc, char * argv[])
op->do_uoff = true;
break;
case 'v':
- ++op->do_verbose;
+ op->verbose_given = true;
+ ++op->verbose;
break;
case 'V':
- op->do_version = true;
+ op->version_given = true;
break;
default:
pr2serr("unrecognised option code %c [0x%x]\n", c, c);
@@ -333,10 +335,11 @@ old_parse_cmd_line(struct opts_t * op, int argc, char * argv[])
jmp_out = true;
break;
case 'v':
- ++op->do_verbose;
+ op->verbose_given = true;
+ ++op->verbose;
break;
case 'V':
- op->do_version = true;
+ op->version_given = true;
break;
case '?':
++op->do_help;
@@ -696,10 +699,27 @@ main(int argc, char * argv[])
usage_old();
return 0;
}
- if (op->do_version) {
+#ifdef DEBUG
+ pr2serr("In DEBUG mode, ");
+ if (op->verbose_given && op->version_given) {
+ pr2serr("but override: '-vV' given, zero verbose and continue\n");
+ op->verbose_given = false;
+ op->version_given = false;
+ op->verbose = 0;
+ } else if (! op->verbose_given) {
+ pr2serr("set '-vv'\n");
+ op->verbose = 2;
+ } else
+ pr2serr("keep verbose=%d\n", op->verbose);
+#else
+ if (op->verbose_given && op->version_given)
+ pr2serr("Not in DEBUG mode, so '-vV' has no special action\n");
+#endif
+ if (op->version_given) {
pr2serr("Version string: %s\n", version_str);
return 0;
}
+
rsp_buff_size = op->maxlen;
if (NULL == op->device_name) {
@@ -707,14 +727,14 @@ main(int argc, char * argv[])
list_page_codes();
return 0;
}
- pr2serr("No DEVICE argument given\n");
+ pr2serr("No DEVICE argument given\n\n");
if (op->opt_new)
usage();
else
usage_old();
return SG_LIB_SYNTAX_ERROR;
}
- vb = op->do_verbose;
+ vb = op->verbose;
if (op->do_raw) {
read_in = sg_memalign(op->maxlen, 0, &free_read_in, vb > 3);
if (NULL == read_in) {