New command -application_use
This commit is contained in:
@ -640,6 +640,52 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_write_application_use(struct XorrisO *xorriso,
|
||||
IsoImage *image, int flag)
|
||||
{
|
||||
int l, ret, count= 512;
|
||||
unsigned int byte= 0;
|
||||
char *path, data[512];
|
||||
FILE *fp= NULL;
|
||||
|
||||
path= xorriso->application_use;
|
||||
l= strlen(path);
|
||||
if(l <= 1) {
|
||||
memset(data, path[0], 512);
|
||||
} else if(l == 4 && path[0] == '0' && path[1] == 'x' &&
|
||||
isxdigit(path[2]) && isxdigit(path[3])) {
|
||||
sscanf(path + 2, "%x", &byte);
|
||||
memset(data, (int) byte, 512);
|
||||
} else {
|
||||
/* Read up to 512 bytes from file path */
|
||||
ret= Xorriso_afile_fopen(xorriso, path, "rb", &fp, 0);
|
||||
if(ret <= 0)
|
||||
{ret= 0; goto ex;}
|
||||
ret= fread(data, 1, 512, fp);
|
||||
if(ret < 512) {
|
||||
if(ferror(fp)) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-application_use: Error while reading file ");
|
||||
Text_shellsafe(path, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text,
|
||||
errno, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
}
|
||||
if(ret < 0)
|
||||
count= 0;
|
||||
else
|
||||
count= ret;
|
||||
}
|
||||
iso_image_set_app_use(image, data, count);
|
||||
ret= 1;
|
||||
ex:
|
||||
if(fp != NULL && fp != stdin)
|
||||
fclose(fp);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= do not write but only prepare and return size in sectors
|
||||
*/
|
||||
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
@ -758,6 +804,8 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
iso_image_set_copyright_file_id(image, xorriso->copyright_file);
|
||||
iso_image_set_biblio_file_id(image, xorriso->biblio_file);
|
||||
iso_image_set_abstract_file_id(image, xorriso->abstract_file);
|
||||
Xorriso_write_application_use(xorriso, image, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
}
|
||||
|
||||
if((xorriso->do_aaip & 256) && out_cs != NULL) {
|
||||
|
Reference in New Issue
Block a user