Repository: lucy-clownfish
Updated Branches:
  refs/heads/master cada6ca96 -> 71ea0c573


Implement CB_Clear


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/35719688
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/35719688
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/35719688

Branch: refs/heads/master
Commit: 3571968857f91a0028f4ef7f56ce0bdd92ac54ba
Parents: ae8edad
Author: Nick Wellnhofer <wellnho...@aevum.de>
Authored: Tue Nov 10 13:11:43 2015 +0100
Committer: Nick Wellnhofer <wellnho...@aevum.de>
Committed: Thu Nov 12 14:08:17 2015 +0100

----------------------------------------------------------------------
 runtime/core/Clownfish/CharBuf.c          |  5 +++++
 runtime/core/Clownfish/CharBuf.cfh        |  5 +++++
 runtime/core/Clownfish/Test/TestCharBuf.c | 14 +++++++++++++-
 3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/35719688/runtime/core/Clownfish/CharBuf.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/CharBuf.c b/runtime/core/Clownfish/CharBuf.c
index e5e3aa2..6e54910 100644
--- a/runtime/core/Clownfish/CharBuf.c
+++ b/runtime/core/Clownfish/CharBuf.c
@@ -389,6 +389,11 @@ CB_Cat_IMP(CharBuf *self, String *string) {
 }
 
 void
+CB_Clear_IMP(CharBuf *self) {
+    self->size = 0;
+}
+
+void
 CB_Set_Size_IMP(CharBuf *self, size_t size) {
     if (size >= self->cap) {
         THROW(ERR, "Can't set size of CharBuf beyond capacity");

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/35719688/runtime/core/Clownfish/CharBuf.cfh
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/CharBuf.cfh 
b/runtime/core/Clownfish/CharBuf.cfh
index 788c0d4..0112ae8 100644
--- a/runtime/core/Clownfish/CharBuf.cfh
+++ b/runtime/core/Clownfish/CharBuf.cfh
@@ -117,6 +117,11 @@ final class Clownfish::CharBuf nickname CB
     char*
     Grow(CharBuf *self, size_t size);
 
+    /** Clear the CharBuf.
+     */
+    void
+    Clear(CharBuf *self);
+
     /** Set the CharBuf's `size` attribute.
      */
     void

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/35719688/runtime/core/Clownfish/Test/TestCharBuf.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Test/TestCharBuf.c 
b/runtime/core/Clownfish/Test/TestCharBuf.c
index 30d8c11..5763e99 100644
--- a/runtime/core/Clownfish/Test/TestCharBuf.c
+++ b/runtime/core/Clownfish/Test/TestCharBuf.c
@@ -323,9 +323,20 @@ test_vcatf_x32(TestBatchRunner *runner) {
     DECREF(got);
 }
 
+static void
+test_Clear(TestBatchRunner *runner) {
+    CharBuf *cb = S_get_cb("foo");
+    CB_Clear(cb);
+    CB_Cat_Utf8(cb, "bar", 3);
+    String *string = CB_Yield_String(cb);
+    TEST_TRUE(runner, Str_Equals_Utf8(string, "bar", 3), "Clear");
+    DECREF(string);
+    DECREF(cb);
+}
+
 void
 TestCB_Run_IMP(TestCharBuf *self, TestBatchRunner *runner) {
-    TestBatchRunner_Plan(runner, (TestBatch*)self, 26);
+    TestBatchRunner_Plan(runner, (TestBatch*)self, 27);
     test_new(runner);
     test_vcatf_percent(runner);
     test_vcatf_s(runner);
@@ -344,5 +355,6 @@ TestCB_Run_IMP(TestCharBuf *self, TestBatchRunner *runner) {
     test_Cat(runner);
     test_Mimic_and_Clone(runner);
     test_Get_Ptr8(runner);
+    test_Clear(runner);
 }
 

Reply via email to