Added possibility to strip left and right to strip_edges (#4594)

This commit is contained in:
Mattias Cibien 2016-05-11 09:22:59 +02:00 committed by Rémi Verschelde
parent 98bff2f595
commit 49c473bb36
3 changed files with 18 additions and 14 deletions

View file

@ -2867,25 +2867,29 @@ CharType String::ord_at(int p_idx) const {
return operator[](p_idx);
}
String String::strip_edges() const {
String String::strip_edges(bool left, bool right) const {
int len=length();
int beg=0,end=len;
for (int i=0;i<length();i++) {
if(left) {
for (int i=0;i<len;i++) {
if (operator[](i)<=32)
beg++;
else
break;
if (operator[](i)<=32)
beg++;
else
break;
}
}
for (int i=(int)(length()-1);i>=0;i--) {
if(right) {
for (int i=(int)(len-1);i>=0;i--) {
if (operator[](i)<=32)
end--;
else
break;
if (operator[](i)<=32)
end--;
else
break;
}
}
if (beg==0 && end==len)

View file

@ -169,7 +169,7 @@ public:
String left(int p_pos) const;
String right(int p_pos) const;
String strip_edges() const;
String strip_edges(bool left = true, bool right = true) const;
String strip_escapes() const;
String extension() const;
String basename() const;

View file

@ -257,7 +257,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM0R(String,to_lower);
VCALL_LOCALMEM1R(String,left);
VCALL_LOCALMEM1R(String,right);
VCALL_LOCALMEM0R(String,strip_edges);
VCALL_LOCALMEM2R(String,strip_edges);
VCALL_LOCALMEM0R(String,extension);
VCALL_LOCALMEM0R(String,basename);
VCALL_LOCALMEM1R(String,plus_file);
@ -1277,7 +1277,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC1(STRING,STRING,String,left,INT,"pos",varray());
ADDFUNC1(STRING,STRING,String,right,INT,"pos",varray());
ADDFUNC0(STRING,STRING,String,strip_edges,varray());
ADDFUNC2(STRING,STRING,String,strip_edges,BOOL,"left",BOOL,"right",varray(true,true));
ADDFUNC0(STRING,STRING,String,extension,varray());
ADDFUNC0(STRING,STRING,String,basename,varray());
ADDFUNC1(STRING,STRING,String,plus_file,STRING,"file",varray());