G_UTF8String: Boxed Type Proposal
- From: Randall Sawyer <srandallsawyer hushmail me>
- To: gtk-devel-list gnome org
- Subject: G_UTF8String: Boxed Type Proposal
- Date: Wed, 16 Mar 2016 18:58:39 -0400
I have a question at the end of this! Please answer if you think it will 
help.
The following is the result of my efforts to develop widgets derived 
from GtkEntry and GtkEntryBuffer. Specifically, I want to have the 
ability to easily develop entries which validate their content and which 
may have specified affixes - which may or may not be selectable.
Glib and Gtk employ UTF-8 strings. This requires that code be written 
which maintains awareness not only of lengths of strings in bytes - but 
also in numbers of unicode characters. For example, the private data in 
GtkEntryBuffer does this. Instead of re-inventing the wheel each time a 
new application is developed, it would be useful to have a string type - 
along the lines of GString - but which maintains a count of unicode 
characters. It's methods which take raw strings as arguments should also 
validate these as they are passed.
I propose the development of a new boxed type for the Glib API named 
"G_UTF8String". I have searched through this mailing list's archives to 
see if anyone else has proposed anything similar. I have not found any.
 I have already written the code for the following foundational prototypes:
g_utf8_string_get_type
g_utf8_string_new
g_utf8_string_copy
g_utf8_string_free
g_utf8_string_char_length
g_utf8_string_byte_length
g_utf8_string_fill
g_utf8_string_splice
g_utf8_string_clear
g_utf8_string_assign
g_utf8_string_prepend
g_utf8_string_append
g_utf8_string_insert
g_utf8_string_remove
g_utf8_string_substring
g_utf8_string_concat
g_utf8_string_get_char
g_utf8_string_set_char
g_utf8_string_fill_char
g_utf8_string_splice_char
g_utf8_string_assign_char
g_utf8_string_prepend_char
g_utf8_string_append_char
g_utf8_string_insert_char
g_utf8_string_fill_utf8
g_utf8_string_splice_utf8
g_utf8_string_assign_utf8
g_utf8_string_prepend_utf8
g_utf8_string_append_utf8
g_utf8_string_insert_utf8
The constructor and the methods ending in *_utf8 take raw string 
pointers as arguments. The functions ending in *_char each take a single 
gunichar. The remaining operate on pointers to allocated G_UTF8String 
structures. The *_(clear|assign|prepend|append|insert|remove)* methods 
are macros which call the respective *_splice* function. I find that 
this makes the source code easier to maintain. I also have in the works 
auxiliary types G_UTF8StringView - along the lines of a vector view as 
provided in GSL - and an iterator.
I would like to contribute to the Glib library by introducing the 
possibility of integrating this boxed type. I have not participated in 
this way before. What is the best way to proceed? Is it to participate 
on GitHub at GNOME/glib?
Thank you!
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]