aboutsummaryrefslogtreecommitdiff
path: root/sysutils/cdrtools/files/patch-readcd::readcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/cdrtools/files/patch-readcd::readcd.c')
-rw-r--r--sysutils/cdrtools/files/patch-readcd::readcd.c84
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) {