pike.git / lib / modules / Process.pmod

version» Context lines:

pike.git/lib/modules/Process.pmod:27:      string sh_quote(string s)   {    return replace(s,    ({"\\", "'", "\"", " "}),    ({"\\\\", "\\'", "\\\"","\\ "}));   }      array(string) split_quoted_string(string s)   { +  sscanf(s,"%*[ \n\t]%s",s);    s=replace(s,    ({"\"", "'", "\\", " ", "\t", "\n"}),    ({"\0\"","\0'","\0\\","\0 ","\0\t","\0\n"}));    array(string) x=s/"\0";    array(string) ret=({x[0]});       for(int e=1;e<sizeof(x);e++)    {    switch(x[e][0])    {
pike.git/lib/modules/Process.pmod:49:    while(x[++e][0]!='"')    {    if(strlen(x[e])==1 && x[e][0]=='\\' && x[e+1][0]=='"') e++;    ret[-1]+=x[e];    }    ret[-1]+=x[e][1..];    break;       case '\'':    ret[-1]+=x[e][1..]; -  while(x[++e][0]!='\'') ret[-1]+=x[e]; +  while(x[++e][0]!='\'') ret[-1]+=x[e][1..];    ret[-1]+=x[e][1..];    break;       case '\\':    if(strlen(x[e])>1)    {    ret[-1]+=x[e][1..];    }else{    ret[-1]+=x[++e];    }    break;       case ' ':    case '\t':    case '\n': -  while(strlen(x[e])==1 && (<' ','\t','\n'>) [x[e][0]] ) +  while(strlen(x[e])==1 && e+1 < sizeof(x) && +  (<' ','\t','\n'>) [x[e+1][0]])    if(++e >= sizeof(x))    return ret;    ret+=({x[e][1..]});    break;       default:    ret[-1]+="\0"+x[e];    break;    }    }