summaryrefslogtreecommitdiff
path: root/vapi/glib-2.0.vapi
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2011-01-15 20:57:07 +0100
committerJürg Billeter <j@bitron.ch>2011-01-15 21:00:40 +0100
commitbd05eda863e6a6395e4709d7cbebb2969efa16ca (patch)
tree81434864437c71b5f8b472ad91bc1b0e63799f1b /vapi/glib-2.0.vapi
parentfaa908c621f6f09a06503bf099e48474d36a1303 (diff)
downloadvala-bd05eda863e6a6395e4709d7cbebb2969efa16ca.tar.gz
glib-2.0: Add string.index_of_nth_char
This deprecates string.utf8_offset, string.offset, string.pointer_to_offset, and string.ndup.
Diffstat (limited to 'vapi/glib-2.0.vapi')
-rw-r--r--vapi/glib-2.0.vapi34
1 files changed, 23 insertions, 11 deletions
diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi
index c3abf8b38..5643c2d24 100644
--- a/vapi/glib-2.0.vapi
+++ b/vapi/glib-2.0.vapi
@@ -1007,19 +1007,31 @@ public class string {
public unowned string next_char ();
[CCode (cname = "g_utf8_get_char")]
static unichar utf8_get_char (char* str);
- public unichar get_char (int index = 0) {
+ public unichar get_char (long index = 0) {
return utf8_get_char ((char*) this + index);
}
[CCode (cname = "g_utf8_get_char_validated")]
public unichar get_char_validated (ssize_t max_len = -1);
+
+ [Deprecated (replacement = "string.index_of_nth_char")]
[CCode (cname = "g_utf8_offset_to_pointer")]
public unowned string utf8_offset (long offset);
+ [Deprecated (replacement = "string.substring")]
public unowned string offset (long offset) {
return (string) ((char*) this + offset);
}
+ [Deprecated (replacement = "string.char_count")]
public long pointer_to_offset (string pos) {
return (long) ((char*) pos - (char*) this);
}
+
+ [CCode (cname = "g_utf8_offset_to_pointer")]
+ char* utf8_offset_to_pointer (long offset);
+
+ public int index_of_nth_char (long c) {
+ return (int) (this.utf8_offset_to_pointer (c) - (char*) this);
+ }
+
[CCode (cname = "g_utf8_prev_char")]
public unowned string prev_char ();
[Deprecated (replacement = "string.length")]
@@ -1126,9 +1138,13 @@ public class string {
[CCode (cname = "g_strdup")]
public string dup ();
+ [Deprecated (replacement = "string.substring")]
[CCode (cname = "g_strndup")]
public string ndup (size_t n);
+ [CCode (cname = "g_strndup")]
+ static string strndup (char* str, size_t n);
+
public string substring (long offset, long len = -1) {
long string_length = this.length;
if (offset < 0) {
@@ -1141,8 +1157,7 @@ public class string {
len = string_length - offset;
}
GLib.return_val_if_fail (offset + len <= string_length, null);
- unowned string start = this.offset (offset);
- return start.ndup (((char*) start.offset (len)) - ((char*) start));
+ return strndup ((char*) this + offset, len);
}
public string slice (long start, long end) {
@@ -1156,8 +1171,7 @@ public class string {
GLib.return_val_if_fail (start >= 0 && start <= string_length, null);
GLib.return_val_if_fail (end >= 0 && end <= string_length, null);
GLib.return_val_if_fail (start <= end, null);
- unowned string start_string = this.offset (start);
- return start_string.ndup (((char*) start_string.offset (end - start)) - ((char*) start_string));
+ return strndup ((char*) this + start, end - start);
}
public string splice (long start, long end, string? str = null) {
@@ -1172,8 +1186,6 @@ public class string {
GLib.return_val_if_fail (end >= 0 && end <= string_length, null);
GLib.return_val_if_fail (start <= end, null);
- unowned string start_string = this.offset (start);
- unowned string end_string = start_string.offset (end - start);
size_t str_size;
if (str == null) {
str_size = 0;
@@ -1181,17 +1193,17 @@ public class string {
str_size = str.length;
}
- string* result = GLib.malloc0 (this.length - ((char*) end_string - (char*) start_string) + str_size + 1);
+ string* result = GLib.malloc0 (this.length - (end - start) + str_size + 1);
char* dest = (char*) result;
- GLib.Memory.copy (dest, this, (char*) start_string - (char*) this);
- dest += (char*) start_string - (char*) this;
+ GLib.Memory.copy (dest, this, start);
+ dest += start;
GLib.Memory.copy (dest, str, str_size);
dest += str_size;
- GLib.Memory.copy (dest, end_string, end_string.length);
+ GLib.Memory.copy (dest, (char*) this + end, string_length - end);
return (owned) result;
}