summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorMattias Cibien <mattiascibien@users.noreply.github.com>2016-05-11 09:22:59 +0200
committerRĂ©mi Verschelde <remi@verschelde.fr>2016-05-11 09:22:59 +0200
commit49c473bb365054969687f14ed0b55bfe3b06e637 (patch)
treeafa4e7d4814639140ee42ed196caae8ca2594a28 /core
parent98bff2f595beda46a35ce66ac4d714fbc41ba2ba (diff)
Added possibility to strip left and right to strip_edges (#4594)
Diffstat (limited to 'core')
-rw-r--r--core/ustring.cpp26
-rw-r--r--core/ustring.h2
-rw-r--r--core/variant_call.cpp4
3 files changed, 18 insertions, 14 deletions
diff --git a/core/ustring.cpp b/core/ustring.cpp
index 730f7cfa3b..1f0eadc03f 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -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)
diff --git a/core/ustring.h b/core/ustring.h
index ec0932e54d..78c041fb92 100644
--- a/core/ustring.h
+++ b/core/ustring.h
@@ -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;
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index 01550a1593..4be763a511 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -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());