New -as mkisofs options -eltorito-id , -eltorito-selcrit

This commit is contained in:
2013-02-18 10:48:02 +00:00
parent bc2c92b01c
commit 2ddf0e7d74
5 changed files with 96 additions and 29 deletions

View File

@ -589,7 +589,8 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
static char arg1_options[][41]= {
"-abstract", "-A", "-appid", "-biblio", "-b", "-B", "-boot-load-seg",
"-boot-load-size", "-C", "-c", "-check-session", "-copyright",
"-dir-mode", "-file-mode", "-G", "-gid", "-hide", "-hide-list",
"-dir-mode", "-eltorito-id", "-eltorito-selcrit",
"-file-mode", "-G", "-gid", "-hide", "-hide-list",
"-hidden", "-hidden-list", "-hide-joliet", "-hide-joliet-list",
"-hide-hfsplus", "-hide-hfsplus-list",
"-hide-udf", "-hide-udf-list", "-input-charset", "-output-charset",
@ -823,6 +824,8 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -hard-disk-boot Boot image is a hard disk image",
" -no-emul-boot Boot image is 'no emulation' image",
" -boot-info-table Patch boot image with info table",
" -eltorito-id ID Set El Torito Id String",
" -eltorito-selcrit HEXBYTES Set El Torito Selection Criteria",
" -isohybrid-gpt-basdat Mark El Torito boot image as Basic Data in GPT",
" -isohybrid-gpt-hfsplus Mark El Torito boot image as HFS+ in GPT",
" -isohybrid-apm-hfsplus Mark El Torito boot image as HFS+ in APM",
@ -1695,6 +1698,8 @@ not_enough_args:;
strcmp(argpt, "-c") == 0 ||
strcmp(argpt, "-eltorito-catalog") == 0 ||
strcmp(argpt, "-boot-load-size") == 0 ||
strcmp(argpt, "-eltorito-id") == 0 ||
strcmp(argpt, "-eltorito-selcrit") == 0 ||
strcmp(argpt, "--embedded-boot")==0 ||
strcmp(argpt, "-generic-boot")==0 ||
strcmp(argpt, "-G") == 0 ||
@ -2234,6 +2239,18 @@ problem_handler_2:;
i++;
sscanf(argv[i], "%d", &ret);
xorriso->boot_image_load_size= ret * 512;
} else if(strcmp(argpt, "-eltorito-id") == 0 ||
strcmp(argpt, "-eltorito-selcrit") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
if(strcmp(argpt, "-eltorito-id") == 0)
sprintf(sfe, "id_string=%s", argv[i]);
else
sprintf(sfe, "sel_crit=%s", argv[i]);
ret= Xorriso_option_boot_image(xorriso, "any", sfe, 0);
if(ret <= 0)
goto problem_handler_boot;
} else if(strncmp(argpt, "isolinux_mbr=", 13)==0) {
sprintf(sfe, "isohybrid=%s", argpt + 13);
ret= Xorriso_option_boot_image(xorriso, "isolinux", sfe, 0);