diff --git a/xorriso/misc_funct.c b/xorriso/misc_funct.c index 17b3a4b4..6f743ddd 100644 --- a/xorriso/misc_funct.c +++ b/xorriso/misc_funct.c @@ -1108,9 +1108,8 @@ int Hex_to_bin(char *hex, #ifndef Xorriso_fileliste_externaL -/* ??? ts A71006 : Is this compatible with mkisofs pathspecs ? - I dimly remember so */ - +/* @param flag bit0= pathspec mode "on" rather than "as_mkisofs" +*/ int Fileliste__target_source_limit(char *line, char sep, char **limit_pt, int flag) { @@ -1118,7 +1117,7 @@ int Fileliste__target_source_limit(char *line, char sep, char **limit_pt, for(npt= line;*npt!=0;npt++) { if(*npt=='\\') { - if(*(npt+1)!=0) + if(*(npt + 1) == '=' || (*(npt + 1) == '\\' && !(flag & 1))) npt++; continue; } diff --git a/xorriso/opts_a_c.c b/xorriso/opts_a_c.c index 1ce1c492..f0ae97c5 100644 --- a/xorriso/opts_a_c.c +++ b/xorriso/opts_a_c.c @@ -146,7 +146,8 @@ int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv, strcpy(source, optv[i]); split= 0; if(xorriso->allow_graft_points) { - ret= Fileliste__target_source_limit(target, '=', &ept, 0); + ret= Fileliste__target_source_limit(target, '=', &ept, + !(xorriso->allow_graft_points & 2)); if(ret>0) { *ept= 0; strcpy(source, ept+1); diff --git a/xorriso/xorriso_private.h b/xorriso/xorriso_private.h index 5985357d..726fff35 100644 --- a/xorriso/xorriso_private.h +++ b/xorriso/xorriso_private.h @@ -530,9 +530,8 @@ struct XorrisO { /* the global context of xorriso */ /* XORRISO options */ int allow_graft_points; /* if not zero: yes special options: - bit1= continue unescaping after first real '=' - (as mkisofs does, - but xorriso did not for years) + bit1= unescape '\\' too, + continue unescaping after first real '=' */ int allow_restore; /* -2=disallowed until special mode "unblock" diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 896b7069..64a1ffc6 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2015.12.09.132636" +#define Xorriso_timestamP "2015.12.09.162402"