[vala/staging: 2/2] glib-2.0: Map given end == 0 for string.slice/splice() to string.length



commit f844ad1c02fb5b17e923a7ba4e69cf2a7df96a14
Author: wb9688 <36312-wb9688 users noreply gitlab gnome org>
Date:   Thu May 21 10:52:01 2020 +0200

    glib-2.0: Map given end == 0 for string.slice/splice() to string.length
    
    Fixes https://gitlab.gnome.org/GNOME/vala/issues/179

 tests/basic-types/strings.vala | 12 ++++++++++++
 vapi/glib-2.0.vapi             |  4 ++++
 2 files changed, 16 insertions(+)
---
diff --git a/tests/basic-types/strings.vala b/tests/basic-types/strings.vala
index a4fcda4f7..7ae03ef97 100644
--- a/tests/basic-types/strings.vala
+++ b/tests/basic-types/strings.vala
@@ -70,6 +70,12 @@ void test_string_slice () {
 
        r = s.slice (-7, -5);
        assert (r == "my");
+
+       r = s.slice (-7, 0);
+       assert (r == "myworld");
+
+       r = s.slice (5, 0);
+       assert (r == "myworld");
 }
 
 void test_string_splice () {
@@ -89,6 +95,12 @@ void test_string_splice () {
 
        s = s.splice (-14, -5);
        assert (s == "helloworld");
+
+       s = s.splice (-5, 0, "wide");
+       assert (s == "hellowide");
+
+       s = s.splice (5, 0, "world");
+       assert (s == "helloworld");
 }
 
 void test_string_substring () {
diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi
index c3df0f7ec..4da3873b6 100644
--- a/vapi/glib-2.0.vapi
+++ b/vapi/glib-2.0.vapi
@@ -1484,6 +1484,8 @@ public class string {
                }
                if (end < 0) {
                        end = string_length + end;
+               } else if (end == 0) {
+                       end = string_length;
                }
                GLib.return_val_if_fail (start >= 0 && start <= string_length, null);
                GLib.return_val_if_fail (end >= 0 && end <= string_length, null);
@@ -1498,6 +1500,8 @@ public class string {
                }
                if (end < 0) {
                        end = string_length + end;
+               } else if (end == 0) {
+                       end = string_length;
                }
                GLib.return_val_if_fail (start >= 0 && start <= string_length, null);
                GLib.return_val_if_fail (end >= 0 && end <= string_length, null);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]