Made -dialog and -options_from_file work

This commit is contained in:
Thomas Schmitt 2007-10-13 10:33:03 +00:00
parent b45b635c50
commit bac1d89199
3 changed files with 213 additions and 20 deletions

View File

@ -0,0 +1,162 @@
------------------------------------------------------------------------------
libburnia-project.org libisoburn , xorriso
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Changelog
------------------------------------------------------------------------------
1 Sep 2007 [983]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Initial content of libisoburn
1 Sep 2007 [985]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
Should have used copy+paste when writing Vreixos name
5 Sep 2007 [990]
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/burn_wrap.c
Implemented use of stdio-pseudo-drives
5 Sep 2007 [993]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/burn_wrap.c
Changes in plans as discussed up to Sep 5 2007
5 Sep 2007 [994]
libisoburn/libisoburn.h
Updated explanations about the usage principles of libisoburn
6 Sep 2007 [998]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/burn_wrap.c
Updated to state of discussion
9 Sep 2007 [1025]
libisoburn/burn_wrap.c
New wrapper isoburn_disc_erasable() declares ISO DVD-RAM, DVD+RW erasable
10 Sep 2007 [1027]
libisoburn/libisoburn.h
New wrapper isoburn_disc_erasable() declares ISO DVD-RAM, DVD+RW erasable
11 Sep 2007 [1029]
libisoburn/burn_wrap.c
libisoburn/isoburn.h
New inner function isoburn_set_start_byte()
12 Sep 2007 [1031]
libisoburn/libisoburn.h
libisoburn/burn_wrap.c
Removed isoburn_write_opts_set_start_byte()
13 Sep 2007 [1043]
libisoburn/burn_wrap.c
Took into respect fabricated_disc_status
21 Sep 2007 [1092]
Makefile.am
Removed libburn file addresses
22 Sep 2007 [1093]
+ doc/doxygen.conf.in
Added file demanded by build system
22 Sep 2007 [1094]
src/burn_wrap.c
Prevented SIGSEGV in isoburn_drive_scan_and_grab()
22 Sep 2007 [1095]
src/burn_wrap.c
Enabled treatment==2 in isoburn_drive_scan_and_grab()
22 Sep 2007 [1099]
src/burn_wrap.c
Made use of burn_msgs_submit() for error messages
23 Sep 2007 [1102]
src/burn_wrap.c
Removed all references to isoburn.treatment from burn_wrap.c
23 Sep 2007 [1105]
src/burn_wrap.c
Called isoburn_create_data_source() and isoburn_free_data_source()
28 Sep 2007 [1129] libisofs
libisofs/libiso_msgs.h
Removed apostrophes which my compiler does not like
29 Sep 2007 [1133]
src/burn_wrap.c
Added optional code for a pseudo CD-RW to test the code for MMC multi-session
29 Sep 2007 [1134]
src/burn_wrap.c
Released drive in case welcome_media fails
1 Oct 2007 [1141]
src/burn_wrap.c
Allowed isoburn_disc_get_msc1() for closed media
2 Oct 2007 [1149]
test/test.c
Function graft_point(),some general polishing, call of iso_volset_free disabled
8 Oct 2007 [1169]
src/libisoburn.h
src/isoburn.h
src/isoburn.c
src/burn_wrap.c
Introduced fifo reference into isoburn object
8 Oct 2007 [1170]
test/test.c
Several directories and files in one session, added display of fifo
12 Oct 2007 [1171]
+ test/xorriso.h
+ test/xorriso.c
+ test/xorriso.txt
The stub of new application xorriso
12 Oct 2007 [1172]
+ test/compile_xorriso.sh
+ test/make_timestamp.sh
+ test/xorriso_timestamp.h
A build facility to circumvent autotools during development
12 Oct 2007 [1173]
test/xorriso.c
Introduced version and build timestamps, library headers
13 Oct 2007 []
test/xorriso.c
+ test/changelog.txt
Made -dialog and -options_from_file work
===============================================================================
TODO
===============================================================================
===============================================================================
This is the dirty end of the todo list.
The recent changelog entries are above the headline "TODO".
===============================================================================

View File

@ -3655,11 +3655,10 @@ return:
<=0 error , 1 = success , 3 = end program run
*/
{
int ret,linecount= 0;
int ret,linecount= 0, argc;
FILE *fp= NULL;
char line[4*SfileadrL], shellsafe[5*SfileadrL];
char *argv[3]; /* <<< must become dynamic */
char **argv= NULL;
if(adr[0]==0) {
sprintf(xorriso->info_text,"--- Empty file name with -options_from_file\n");
@ -3667,7 +3666,11 @@ return:
return(0);
}
Text_shellsafe(adr,shellsafe,0);
argv[0]= xorriso->progname;
if(xorriso->is_dialog) {
sprintf(xorriso->info_text,"+ performing command lines from file %s :\n",
shellsafe);
Xorriso_info(xorriso,1);
}
fp= Afile_fopen(adr,"rb",((!!xorriso->packet_output)<<6));
if(fp==NULL)
return(0);
@ -3682,20 +3685,19 @@ return:
if(line[0]==0 || line[0]=='#')
continue;
/* >>> parse line into args */
fprintf(stderr, "XORRISO: parse line into args:\n%s\n", line);
continue;
if(flag&1) {
ret= Xorriso_prescan_args(xorriso,3,argv,1);
ret= Sfile_make_argv(xorriso->progname, line, &argc, &argv, 4);
if(ret<=0)
goto ex;
ret= Xorriso_prescan_args(xorriso,argc,argv,1);
Sfile_make_argv("", "", &argc, &argv, 2); /* release memory */
if(ret==0)
{ret= 3; goto ex;}
if(ret<0)
goto ex;
} else {
if(xorriso->is_dialog) {
sprintf(xorriso->info_text,"+ line %d of file %s :\n+ %s\n",
linecount,shellsafe,line);
sprintf(xorriso->info_text,"+ %d: %s\n",linecount,line);
Xorriso_info(xorriso,1);
}
ret= Xorriso_execute_option(xorriso,line,1|(1<<16));
@ -4213,7 +4215,7 @@ next_command:;
} else if(strcmp(cmd,"-pwd")==0 || strcmp(cmd,"-pwdi")==0) {
Xorriso_option_pwdi(xorriso, 0);
} else if(strcmp(cmd,"-pwdix")==0) {
} else if(strcmp(cmd,"-pwdx")==0) {
Xorriso_option_pwdx(xorriso, 0);
} else if(strcmp(cmd,"-reassure")==0) {
@ -4248,6 +4250,27 @@ next_command:;
} else if(strcmp(cmd,"-tell_media_space")==0) {
Xorriso_option_tell_media_space(xorriso, 0);
} else if(strcmp(cmd,"-test")==0) {
char line[4096],**hargv= NULL;
int hargc, i;
printf("XORRISO: -test : enter a line for test parsing\n");
ret= Xorriso_dialog_input(xorriso,line,sizeof(line),4);
if(ret<=0)
goto ex;
ret= Sfile_make_argv(xorriso->progname, line, &hargc, &hargv, 4);
if(ret<=0) {
fprintf(stderr, "--- Malformed quotation marking encountered\n");
goto ex;
}
for(i=0; i<hargc; i++) {
sprintf(xorriso->result_line,"%d : |%s|\n", i, hargv[i]);
ret= Xorriso_result(xorriso,0);
if(ret<=0)
goto ex;
}
Sfile_make_argv(xorriso->progname, line, &hargc, &hargv, 2);
} else if(strcmp(cmd,"-toc")==0) {
Xorriso_option_toc(xorriso, 0);
@ -4263,9 +4286,12 @@ next_command:;
(*idx)++;
ret= Xorriso_option_use_readline(xorriso, arg1, 0);
}else if(strcmp(cmd,"-version")==0){
} else if(strcmp(cmd,"-version")==0){
ret= Xorriso_option_version(xorriso, 0);
} else if(strcmp(cmd,"--")==0){
/* tis ok */;
} else if(cmd[0]=='-') {
sprintf(xorriso->info_text,
"=== Input line beginning with '-' is not a known option\n");
@ -4313,13 +4339,14 @@ int Xorriso_execute_option(struct XorrisO *xorriso, char *line, int flag)
xorriso->idle_time= 0.0;
tdiff= tv.tv_sec+(1.e-6*(double) tv.tv_usec);
/* >>> parse line into args */
fprintf(stderr, "XORRISO: parse line into args:\n%s\n", line);
return(1);
/* parse line into args */
ret= Sfile_make_argv(xorriso->progname, line, &argc, &argv, 4);
if(ret<=0)
goto ex;
ret= Xorriso_interpreter(xorriso, argc, argv, &idx, flag&0xffff);
if(ret<0)
return(ret);
goto ex;
gettimeofday(&tv,&tz);
tdiff= tv.tv_sec+(1.e-6*(double) tv.tv_usec)-tdiff-xorriso->idle_time;
if(tdiff<0.001)
@ -4331,11 +4358,13 @@ int Xorriso_execute_option(struct XorrisO *xorriso, char *line, int flag)
Xorriso_info(xorriso,!(flag&(1<<16)));
}
if((flag&(1<<17)) && !xorriso->bar_is_fresh) {
sprintf(xorriso->info_text,"===========================\n");
sprintf(xorriso->info_text,"============================\n");
Xorriso_info(xorriso,0);
xorriso->bar_is_fresh= 1;
}
Xorriso_reset_counters(xorriso,1);
ex:;
Sfile_make_argv("", "", &argc, &argv, 2); /* release memory */
return(ret);
}
@ -4353,7 +4382,7 @@ int Xorriso_dialog(struct XorrisO *xorriso, int flag)
xorriso->pending_option[0]= 0;
} else {
if(!xorriso->bar_is_fresh) {
sprintf(xorriso->info_text,"===========================\n");
sprintf(xorriso->info_text,"============================\n");
Xorriso_info(xorriso,0);
xorriso->bar_is_fresh= 1;
}
@ -4458,6 +4487,8 @@ int main(int argc, char **argv)
if(ret<0)
exit(5);
/* >>> startup file */
i= 1;
ret= Xorriso_interpreter(xorriso,argc,argv,&i,0);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2007.10.12.231015"
#define Xorriso_timestamP "2007.10.13.103645"