New command -drive_access, new -as cdrecord option --drive_not_exclusive
This commit is contained in:
@@ -2058,6 +2058,8 @@ int Xorriso_sieve_big(struct XorrisO *xorriso, int flag)
|
||||
1, 1},
|
||||
{"DVD obs 64 kB:", 3, "DVD obs 64 kB:", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||
1, 0},
|
||||
{"Drive access :", 3, "Drive access : ", ": ", 2, { 0, 1, -1, -1, -1, -1},
|
||||
2, 0},
|
||||
{"Drive current:", 3, "Drive current:", "", 2, { 0, 1, -1, -1, -1, -1},
|
||||
2, 0},
|
||||
{"Drive id :", 3, "Drive id :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||
@@ -2771,6 +2773,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
{
|
||||
int is_default, no_defaults, i, ret, adr_mode, do_single, behavior;
|
||||
int show_indev= 1, show_outdev= 1, show_dev= 0;
|
||||
int do_drive_access, did_drive_access;
|
||||
int part_table_implicit= 0;
|
||||
char *line, *sfe= NULL, mode[80], *form, *treatment;
|
||||
char *in_pt, *out_pt, *nl_charset, *local_charset, *mode_pt;
|
||||
@@ -3814,13 +3817,20 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
}
|
||||
}
|
||||
|
||||
is_default= (xorriso->drives_exclusive == 1 && xorriso->drives_access == 1);
|
||||
sprintf(line, "-drive_access %s:%s\n",
|
||||
xorriso->drives_exclusive ? "exclusive" : "shared",
|
||||
xorriso->drives_access == 0 ? "readonly" : "unrestricted");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||
|
||||
is_default= (xorriso->linux_scsi_dev_family == 0);
|
||||
sprintf(line, "-scsi_dev_family %s\n",
|
||||
scsi_family[xorriso->linux_scsi_dev_family & 7]);
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
do_single= 0;
|
||||
do_single= do_drive_access= 0;
|
||||
dev_filter= filter;
|
||||
if(dev_filter != NULL) {
|
||||
show_dev= Xorriso_status_filter(xorriso, filter, "-dev", 0);
|
||||
@@ -3833,43 +3843,52 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
if(show_outdev > 0 || show_indev > 0)
|
||||
do_single= 1;
|
||||
}
|
||||
if(xorriso->drives_exclusive != xorriso->indev_is_exclusive &&
|
||||
xorriso->indev[0])
|
||||
if((xorriso->drives_exclusive != xorriso->indev_is_exclusive ||
|
||||
xorriso->drives_access != xorriso->indev_access) && xorriso->indev[0]) {
|
||||
do_single= 1;
|
||||
else if(xorriso->drives_exclusive != xorriso->outdev_is_exclusive &&
|
||||
xorriso->outdev[0])
|
||||
do_drive_access|= 1;
|
||||
}
|
||||
if((xorriso->drives_exclusive != xorriso->outdev_is_exclusive ||
|
||||
xorriso->drives_access != xorriso->outdev_access) &&
|
||||
xorriso->outdev[0]) {
|
||||
do_single= 1;
|
||||
do_drive_access|= 2;
|
||||
}
|
||||
if(strcmp(xorriso->indev, xorriso->outdev) == 0 && !do_single) {
|
||||
sprintf(line,"-dev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
||||
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
||||
} else {
|
||||
if(xorriso->drives_exclusive != xorriso->indev_is_exclusive &&
|
||||
xorriso->indev[0] && show_indev) {
|
||||
sprintf(line,"-osirrox o_excl_%s\n",
|
||||
xorriso->indev_is_exclusive ? "on" : "off");
|
||||
did_drive_access= 0;
|
||||
if((do_drive_access & 1) && xorriso->indev[0] && show_indev) {
|
||||
sprintf(line,"-drive_access %s:%s\n",
|
||||
xorriso->indev_is_exclusive ? "exclusive" : "shared",
|
||||
xorriso->indev_access == 0 ? "readonly" : "unrestricted");
|
||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||
did_drive_access= 1;
|
||||
}
|
||||
sprintf(line,"-indev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
||||
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
||||
if(xorriso->drives_exclusive != xorriso->indev_is_exclusive &&
|
||||
xorriso->indev[0] && show_indev) {
|
||||
sprintf(line,"-osirrox o_excl_%s\n",
|
||||
xorriso->drives_exclusive ? "on" : "off");
|
||||
if(did_drive_access) {
|
||||
sprintf(line,"-drive_access %s:%s\n",
|
||||
xorriso->drives_exclusive ? "exclusive" : "shared",
|
||||
xorriso->drives_access == 0 ? "readonly" : "unrestricted");
|
||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||
}
|
||||
|
||||
if(xorriso->drives_exclusive != xorriso->outdev_is_exclusive &&
|
||||
xorriso->outdev[0] && show_outdev) {
|
||||
sprintf(line,"-osirrox o_excl_%s\n",
|
||||
xorriso->outdev_is_exclusive ? "on" : "off");
|
||||
did_drive_access= 0;
|
||||
if((do_drive_access & 2) && xorriso->outdev[0] && show_outdev) {
|
||||
sprintf(line,"-drive_access %s:%s\n",
|
||||
xorriso->outdev_is_exclusive ? "exclusive" : "shared",
|
||||
xorriso->outdev_access == 0 ? "readonly" : "unrestricted");
|
||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||
did_drive_access= 1;
|
||||
}
|
||||
sprintf(line,"-outdev %s\n", Text_shellsafe(xorriso->outdev,sfe,0));
|
||||
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
||||
if(xorriso->drives_exclusive != xorriso->outdev_is_exclusive &&
|
||||
xorriso->outdev[0] && show_outdev) {
|
||||
sprintf(line,"-osirrox o_excl_%s\n",
|
||||
xorriso->drives_exclusive ? "on" : "off");
|
||||
if(did_drive_access) {
|
||||
sprintf(line,"-drive_access %s:%s\n",
|
||||
xorriso->drives_exclusive ? "exclusive" : "shared",
|
||||
xorriso->drives_access == 0 ? "readonly" : "unrestricted");
|
||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user