New option -add_plainly

This commit is contained in:
2008-01-20 20:03:48 +00:00
parent f85b1a5f21
commit 707a397762
5 changed files with 81 additions and 8 deletions

View File

@@ -2848,6 +2848,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->wdi[0]= 0;
strcpy(m->wdx, m->initial_wdx);
m->did_something_useful= 0;
m->add_plainly= 0;
m->do_joliet= 0;
m->do_follow_pattern= 1;
m->do_follow_param= 0;
@@ -3939,6 +3940,14 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
(xorriso->wdx[0] ? Text_shellsafe(xorriso->wdx,sfe,0) : "'/'"));
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->add_plainly==0);
sprintf(line,"-add_plainly %s\n",
(xorriso->add_plainly == 1 ? "unknown" :
xorriso->add_plainly == 2 ? "dashed" :
xorriso->add_plainly == 3 ? "any" : "none"));
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->do_iso_rr_pattern==1);
sprintf(line,"-iso_rr_pattern %s\n",
(xorriso->do_iso_rr_pattern == 1 ? "on" :
@@ -6052,6 +6061,26 @@ ex:;
}
/* Option -add_plainly "none"|"unknown" */
int Xorriso_option_add_plainly(struct XorrisO *xorriso, char *mode,int flag)
{
if(strcmp(mode, "none")==0)
xorriso->add_plainly= 0;
if(strcmp(mode, "unknown")==0)
xorriso->add_plainly= 1;
else if(strcmp(mode, "dashed")==0)
xorriso->add_plainly= 2;
else if(strcmp(mode, "any")==0)
xorriso->add_plainly= 3;
else {
sprintf(xorriso->info_text, "-add_plainly: unknown mode '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
return(1);
}
/* Option -alter_date , -alter_date_r */
/* @param flag bit0=recursive (-alter_date_r)
*/
@@ -7068,6 +7097,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -add pathspec [...] | disk_path [***]",
" Insert the given files or directory trees from",
" filesystem into the ISO image. Much like mkisofs.",
" -add_plainly \"none\"|\"unknown\"|\"dashed\"|\"any\"",
" Whether to add lonely arguments as pathspec resp. disk_path.",
" -path-list disk_path",
" Like -add but read the pathspecs from file disk_path.",
" -pathspecs \"on\"|\"off\" Allow or disallow pathspecs of form ",
@@ -8288,6 +8319,10 @@ next_command:;
cmd= argv[*idx];
else
cmd= "";
if(xorriso->add_plainly==3 && cmd[0] && !xorriso->is_dialog) {
(*idx)++;
goto add_plain_argument;
}
was_dashed= 0;
if(cmd[0]=='-' && cmd[1]!='-' && cmd[1]!=0) {
was_dashed= 1;
@@ -8315,6 +8350,10 @@ next_command:;
} else if(strcmp(cmd,"add")==0) {
ret= Xorriso_option_add(xorriso, argc, argv, idx, 0);
} else if(strcmp(cmd,"add_plainly")==0) {
(*idx)++;
ret= Xorriso_option_add_plainly(xorriso, arg1, 0);
} else if(strcmp(cmd,"alter_date")==0 || strcmp(cmd,"alter_date_r")==0) {
(*idx)+= 2;
ret= Xorriso_option_alter_date(xorriso, arg1, arg2, argc, argv, idx,
@@ -8646,6 +8685,8 @@ next_command:;
/* tis ok */;
} else if(was_dashed) {
if(xorriso->add_plainly>1)
goto add_plain_argument;
unknown_option:;
sprintf(xorriso->info_text,
"=== Not a known option:\n");
@@ -8655,12 +8696,13 @@ unknown_option:;
{ret= 0; goto eval_any_problems;}
} else {
goto unknown_option;
if(xorriso->add_plainly<=0)
goto unknown_option;
add_plain_argument:;
(*idx)--;
ret= Xorriso_option_add(xorriso, (*idx)+1, argv, idx, 0);
(*idx)++;
/* >>> ??? pathspecs for option -add */;
sprintf(xorriso->info_text, "Ignored argument : '%s'", cmd);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
}
eval_any_problems: