New -boot_image isolinux partition_table=on, -as mkisofs -isohybrid-mbr

This commit is contained in:
Thomas Schmitt 2010-04-10 17:13:21 +00:00
parent fd0f3467ad
commit d1855c8895
3 changed files with 24 additions and 10 deletions

View File

@ -6997,9 +6997,10 @@ bin_path:;
Text_shellsafe(xorriso->system_area_disk_path, sfe, 0));
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= ((xorriso->system_area_options & 1) == 0);
sprintf(line,"-boot_image grub partition_table=%s\n",
xorriso->system_area_options & 1 ? "on" : "off");
is_default= ((xorriso->system_area_options & 3) == 0);
sprintf(line,"-boot_image %s partition_table=%s\n",
xorriso->system_area_options & 2 ? "isolinux" : "grub",
xorriso->system_area_options & 3 ? "on" : "off");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
@ -11603,15 +11604,18 @@ not_enough_args:;
/* was already handled in first argument scan */;
} else if(strcmp(argv[i], "--embedded-boot")==0 ||
strcmp(argv[i], "-generic-boot")==0 ||
strcmp(argv[i], "-G") == 0) {
strcmp(argv[i], "-G") == 0 ||
strcmp(argv[i], "-isohybrid-mbr")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
ret= Xorriso_set_system_area_path(xorriso, argv[i], 0);
if(ret <= 0)
goto ex;
if(strcmp(argv[i - 1], "-isohybrid-mbr")==0)
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 2;
} else if(strcmp(argv[i], "--protective-msdos-label")==0) {
xorriso->system_area_options|= 1;
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 1;
} else if(strncmp(argv[i], "--modification-date=", 20)==0) {
ret= Xorriso_option_volume_date(xorriso, "uuid", argv[i] + 20, 0);
if(ret <= 0)
@ -13858,13 +13862,19 @@ int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
ret= Xorriso_set_system_area_path(xorriso, treatpt + 12, 0);
if(ret <= 0)
return(ret);
if(strcmp(formpt, "isolinux")==0)
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 2;
} else if(strncmp(treatpt, "partition_table=", 16)==0) {
if(strcmp(treatpt + 16, "off") == 0)
xorriso->system_area_options&= ~1;
else if(strcmp(treatpt + 16, "on") == 0)
xorriso->system_area_options|= 1;
xorriso->system_area_options&= ~3;
else if(strcmp(treatpt + 16, "on") == 0) {
xorriso->system_area_options&= ~3;
if(strcmp(formpt, "isolinux")==0)
xorriso->system_area_options|= 2;
else
xorriso->system_area_options|= 1;
} else
was_ok= 0;
} else if(strncmp(treatpt, "isohybrid=", 10) == 0 &&

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.04.10.170927"
#define Xorriso_timestamP "2010.04.10.171214"

View File

@ -1718,6 +1718,10 @@ int Xorriso_set_system_area(struct XorrisO *xorriso,
bufpt= buf;
do_set:;
sprintf(xorriso->info_text, "Copying to System Area: %d bytes from file ",
ret);
Text_shellsafe(xorriso->system_area_disk_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
ret= isoburn_igopt_set_system_area(sopts, bufpt,
xorriso->system_area_options);
if(ret != ISO_SUCCESS) {