diff options
Diffstat (limited to 'sysutils/cdrtools/files/patch-readcd::readcd.c')
-rw-r--r-- | sysutils/cdrtools/files/patch-readcd::readcd.c | 84 |
1 files changed, 58 insertions, 26 deletions
diff --git a/sysutils/cdrtools/files/patch-readcd::readcd.c b/sysutils/cdrtools/files/patch-readcd::readcd.c index f347a2299902..4d2f2502011f 100644 --- a/sysutils/cdrtools/files/patch-readcd::readcd.c +++ b/sysutils/cdrtools/files/patch-readcd::readcd.c @@ -1,31 +1,63 @@ --- readcd/readcd.c.original Sun Jan 15 17:14:03 2006 +++ readcd/readcd.c Sun Jan 15 17:24:47 2006 -@@ -370,6 +370,8 @@ - exit(err); +@@ -253,9 +256,9 @@ + int fcount; + int cac; + char * const *cav; +- int scsibus = 0; +- int target = 0; +- int lun = 0; ++ int scsibus = -1; ++ int target = -1; ++ int lun = -1; + int silent = 0; + int verbose = 0; + int kdebug = 0; +@@ -335,20 +338,22 @@ + usage(EX_BAD); + /* NOTREACHED */ + } +- } else { +- scsibus = 0; } - } else { -+ char errstr[80]; -+ - if (scsibus == -1 && target >= 0 && lun >= 0) - scsibus = 0; + cac--; + cav++; + } + /*error("dev: '%s'\n", dev);*/ +- + if (!scanbus) + cdr_defaults(&dev, NULL, NULL, NULL); + if (debug) { + printf("dev: '%s'\n", dev); + } +- if (dev) { ++ if (!scanbus && dev == NULL && ++ scsibus == -1 && (target == -1 || lun == -1)) { ++ errmsgno(EX_BAD, "No SCSI device specified.\n"); ++ usage(EX_BAD); ++ } ++ if (dev || scanbus) { + char errstr[80]; -@@ -378,8 +380,17 @@ - scgp->kdebug = kdebug; + /* +@@ -357,8 +362,9 @@ + * remote routines that are located inside libscg. + */ + scg_remote(); +- if ((strncmp(dev, "HELP", 4) == 0) || +- (strncmp(dev, "help", 4) == 0)) { ++ if (dev != NULL && ++ ((strncmp(dev, "HELP", 4) == 0) || ++ (strncmp(dev, "help", 4) == 0))) { + scg_help(stderr); + exit(0); + } +@@ -1629,7 +1656,7 @@ + end = scgp->cap->c_baddr + 1; + scgp->silent--; - scg_settarget(scgp, scsibus, target, lun); -- if (scg__open(scgp, NULL) <= 0) -- comerr("Cannot open SCSI driver.\n"); -+ -+ scgp = scg_open(dev, errstr, sizeof(errstr), 0, 0); -+ -+ if (scgp == NULL) { -+ errmsg("%s%sCannot open SCSI driver.\n", errstr, errstr[0]?". ":""); -+ errmsgno(EX_BAD, "For possible targets try 'readcd -scanbus'.%s\n", -+ geteuid() ? " Make sure you are root.":""); -+ errmsgno(EX_BAD, "For possible transport specifiers try 'readcd dev=help'.\n"); -+ exit(EX_BAD); -+ } -+ - } - scgp->silent = silent; - scgp->verbose = verbose; +- if (end <= 0 || isrange || (askrange && scg_yes("Ignore disk size? "))) ++ if ((end <= 0 && isrange) || (askrange && scg_yes("Ignore disk size? "))) + end = 10000000; /* Hack to read empty (e.g. blank=fast) disks */ + + if (parmp) { |