diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2017-03-02 08:00:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-02 08:00:28 +0100 |
commit | ee53f85bea20f1d579dae5cce849b4ad9806a9bd (patch) | |
tree | 3f2737222c0aecd313ad3a74a0922a516cbea856 | |
parent | f592d1ebfc15a2c9123a502a3cc50267d89b7ef7 (diff) | |
parent | 9f7ce79ea37777997b3c7988dbbdfb2cc4b4597d (diff) | |
download | redot-engine-ee53f85bea20f1d579dae5cce849b4ad9806a9bd.tar.gz |
Merge pull request #7882 from AlexHolly/PoolStringArray-join
added join to PoolStringArray
-rw-r--r-- | core/dvector.h | 11 | ||||
-rw-r--r-- | core/variant_call.cpp | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/dvector.h b/core/dvector.h index 53a29738f7..456be41289 100644 --- a/core/dvector.h +++ b/core/dvector.h @@ -34,6 +34,7 @@ #include "pool_allocator.h" #include "safe_refcount.h" #include "os/rw_lock.h" +#include "ustring.h" struct MemoryPool { @@ -466,6 +467,16 @@ public: return OK; } + String join(String delimiter) { + String rs = ""; + int s = size(); + Read r = read(); + for(int i=0;i<s;i++) { + rs += r[i] + delimiter; + } + rs.erase( rs.length()-delimiter.length(), delimiter.length()); + return rs; + } bool is_locked() const { return alloc && alloc->lock>0; } diff --git a/core/variant_call.cpp b/core/variant_call.cpp index b75dfe73ec..376e646fc2 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -564,6 +564,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var VCALL_LOCALMEM1(PoolStringArray,append); VCALL_LOCALMEM1(PoolStringArray,append_array); VCALL_LOCALMEM0(PoolStringArray,invert); + VCALL_LOCALMEM1R(PoolStringArray,join); VCALL_LOCALMEM0R(PoolVector2Array,size); VCALL_LOCALMEM2(PoolVector2Array,set); @@ -1637,6 +1638,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_scs_create(#m_method),VCA ADDFUNC2(POOL_STRING_ARRAY,INT,PoolStringArray,insert,INT,"idx",STRING,"string",varray()); ADDFUNC1(POOL_STRING_ARRAY,NIL,PoolStringArray,resize,INT,"idx",varray()); ADDFUNC0(POOL_STRING_ARRAY,NIL,PoolStringArray,invert,varray()); + ADDFUNC1(POOL_STRING_ARRAY,STRING,PoolStringArray,join,STRING,"string",varray()); ADDFUNC0(POOL_VECTOR2_ARRAY,INT,PoolVector2Array,size,varray()); ADDFUNC2(POOL_VECTOR2_ARRAY,NIL,PoolVector2Array,set,INT,"idx",VECTOR2,"vector2",varray()); |