New commands -projid, -get_projid, -get_projid_r, -set_projid, -set_projid_r, -find test -has_projid, -find actions get_projid, set_projid, get_projid_minmax

This commit is contained in:
2024-11-03 20:04:54 +01:00
parent 923bfa0be9
commit 32bfa95973
25 changed files with 1168 additions and 214 deletions

View File

@ -2775,7 +2775,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
-options_from_file:${resume_state_file}_pos
*/
{
int is_default, no_defaults, i, ret, adr_mode, do_single, behavior;
int is_default, no_defaults, i, ret, adr_mode, do_single, behavior, count;
int show_indev= 1, show_outdev= 1, show_dev= 0;
int do_drive_access, did_drive_access;
int part_table_implicit= 0;
@ -3862,6 +3862,31 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2);
count= Numbermapper_get_count(xorriso->projid_mapper, 0);
is_default= (count == 0 && !(xorriso->do_aaip & (1 << 17)));
strcpy(line, "-projid ");
if(xorriso->do_aaip & (1 << 17))
strcat(line, "on");
else
strcat(line, "off");
if(xorriso->do_aaip & (1 << 18))
strcat(line, ":restore_0");
else
strcat(line, ":no_restore_0");
strcat(line, "\n");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2);
for(i= count - 1; i >= 0; i--) {
strcpy(line, "-projid map+");
ret= Numbermapper_encode(xorriso->projid_mapper, i, line + strlen(line),
1024, 0);
if(ret <= 0)
continue;
strcat(line, "\n");
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
is_default= ((xorriso->do_aaip & (16 | 32 | 64)) == 0);
sprintf(line,"-disk_dev_ino %s\n",
(xorriso->do_aaip & 16 ? (xorriso->do_aaip & 128 ? "ino_only" : "on" )
@ -4910,4 +4935,15 @@ int Xorriso_set_info_text(struct XorrisO *xorriso, char *text,
}
return(1);
}
int Xorriso_show_projid(struct XorrisO *xorriso, char *path, uint32_t projid,
int flag)
{
sprintf(xorriso->result_line, "%10lu ", (unsigned long int) projid);
Xorriso_esc_filepath(xorriso, path, xorriso->result_line, 1);
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
return(1);
}