diff options
| author | 2019-04-01 15:01:02 +0200 | |
|---|---|---|
| committer | 2019-04-01 15:01:02 +0200 | |
| commit | 1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9 (patch) | |
| tree | 94cfdd5000b6b0d6af1272e89f8b234fd8c484d4 /src/modules/objects/KvsObject_list.cpp | |
| parent | Add support for Python 3 (diff) | |
| parent | uintUserListMinimumWidth: Reduce minimum due to account for certain combinati... (diff) | |
| download | KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.tar.gz KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.tar.bz2 KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.zip | |
Merge branch 'master' into python3
Diffstat (limited to 'src/modules/objects/KvsObject_list.cpp')
| -rw-r--r-- | src/modules/objects/KvsObject_list.cpp | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/modules/objects/KvsObject_list.cpp b/src/modules/objects/KvsObject_list.cpp index 25ccf5dfc..83bc9ca5c 100644 --- a/src/modules/objects/KvsObject_list.cpp +++ b/src/modules/objects/KvsObject_list.cpp @@ -26,7 +26,7 @@ #include "KviMemory.h" #include "KviLocale.h" #include "KvsObject_list.h" -#include <stdlib.h> +#include <cstdlib> /* @doc: list @@ -48,6 +48,23 @@ [classfnc:list]$moveNext[/classfnc](),[classfnc:list]$movePrev[/classfnc](), [classfnc:list]$current[/classfnc]() and [classfnc:list]$eof[/classfnc]() functions. @functions: + !fn: $sort(<bReverse:bool>) + Sorts items in the list alphabetically ($true) or in reverse order ($false); Default to $false. + [example] + %list=$new(list);[br] + %list->$append('Foo');[br] + %list->$append('Bar');[br] + %list->$append('Dummy');[br] + %list->$append('Aria');[br] + [br] + %list->$sort(true);[br] + %list->$moveFirst();[br] + while(%list->$eof())[br] + {[br] + echo %list->$current();[br] + %list->$moveNext();[br] + }[br] + [/example] !fn: <integer> $count() Returns the number of items in the list !fn: <boolean> $isEmpty() @@ -168,7 +185,7 @@ KVSO_CLASS_FUNCTION(list, current) KVSO_CLASS_FUNCTION(list, eof) { CHECK_INTERNAL_POINTER(m_pDataList) - c->returnValue()->setBoolean(m_pDataList->current() != nullptr); + c->returnValue()->setBoolean(m_pDataList->safeCurrent() != nullptr); return true; } @@ -299,7 +316,7 @@ KVSO_CLASS_FUNCTION(list, clear) return true; } -inline int kvi_compare(const KviKvsVariant * p1, const KviKvsVariant * p2) +int kvi_compare(const KviKvsVariant * p1, const KviKvsVariant * p2) { return p1->compare(p2); } @@ -307,7 +324,13 @@ inline int kvi_compare(const KviKvsVariant * p1, const KviKvsVariant * p2) KVSO_CLASS_FUNCTION(list, sort) { CHECK_INTERNAL_POINTER(m_pDataList) + bool bReverse; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("bReverse", KVS_PT_BOOL, KVS_PF_OPTIONAL, bReverse) + KVSO_PARAMETERS_END(c) m_pDataList->sort(); + if(bReverse) + m_pDataList->invert(); return true; } |
