Introduced flag bit1 with Text_shellsafe() for double sized target string
This commit is contained in:
parent
d9075c694d
commit
a5f5a335cf
@ -1013,19 +1013,22 @@ ex:;
|
|||||||
|
|
||||||
|
|
||||||
/* @param flag bit0= append to out_text rather than overwrite it
|
/* @param flag bit0= append to out_text rather than overwrite it
|
||||||
|
bit1= length limit is 10 * SfileadrL rather than 5 *
|
||||||
*/
|
*/
|
||||||
char *Text_shellsafe(char *in_text, char *out_text, int flag)
|
char *Text_shellsafe(char *in_text, char *out_text, int flag)
|
||||||
{
|
{
|
||||||
int l,i,ol= 0,w=0;
|
int l,i,w=0, limit= 5 * SfileadrL;
|
||||||
|
|
||||||
if(flag&1)
|
if(flag&1)
|
||||||
ol= w= strlen(out_text);
|
w= strlen(out_text);
|
||||||
|
if(flag & 2)
|
||||||
|
limit= 10 * SfileadrL;
|
||||||
/* enclose everything by hard quotes */
|
/* enclose everything by hard quotes */
|
||||||
l= strlen(in_text);
|
l= strlen(in_text);
|
||||||
out_text[w++]= '\'';
|
out_text[w++]= '\'';
|
||||||
for(i=0;i<l;i++){
|
for(i=0;i<l;i++){
|
||||||
if(in_text[i]=='\''){
|
if(in_text[i]=='\''){
|
||||||
if(w+7>5*SfileadrL+ol)
|
if(w + 7 > limit)
|
||||||
goto overflow;
|
goto overflow;
|
||||||
/* escape hard quote within the text */
|
/* escape hard quote within the text */
|
||||||
out_text[w++]= '\'';
|
out_text[w++]= '\'';
|
||||||
@ -1034,7 +1037,7 @@ char *Text_shellsafe(char *in_text, char *out_text, int flag)
|
|||||||
out_text[w++]= '"';
|
out_text[w++]= '"';
|
||||||
out_text[w++]= '\'';
|
out_text[w++]= '\'';
|
||||||
} else {
|
} else {
|
||||||
if(w+3>5*SfileadrL) {
|
if(w + 3 > limit) {
|
||||||
overflow:;
|
overflow:;
|
||||||
strncpy(out_text, "'xorriso: TEXT MUCH TOO LONG ... ",33);
|
strncpy(out_text, "'xorriso: TEXT MUCH TOO LONG ... ",33);
|
||||||
break;
|
break;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2011.05.05.163926"
|
#define Xorriso_timestamP "2011.05.06.120600"
|
||||||
|
Loading…
Reference in New Issue
Block a user