From: wb9688 <36312-wb9688@users.noreply.gitlab.gnome.org> Date: Thu, 21 May 2020 08:52:01 +0000 (+0200) Subject: glib-2.0: Map given end == 0 for string.slice/splice() to string.length X-Git-Tag: 0.49.1~123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f844ad1c02fb5b17e923a7ba4e69cf2a7df96a14;p=thirdparty%2Fvala.git glib-2.0: Map given end == 0 for string.slice/splice() to string.length Fixes https://gitlab.gnome.org/GNOME/vala/issues/179 --- 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);