func _GStringToGoString(s *C.gchar) string {
	if s == nil {
		return ""
	}
	return C.GoString((*C.char)(unsafe.Pointer(s)))
}
glib C string to Go string, NULL == ""
package gi
import "C"
import (
	"errors"
	"strings"
	"runtime"
	"unsafe"
	"fmt"
)
func init() {
	C.g_type_init()
}
func _GStringGSListToGoStringSlice(list *C.GSList) []string {
	var slice []string
	for list != nil {
		str := C.GoString(C.gpointer_to_charp(list.data))
		slice = append(slice, str)
		list = list.next
	}
	return slice
}
func _GStringArrayToGoStringSlice(arr **C.gchar) []string {
	var slice []string
	if arr == nil {
		return slice
	}
	iter := arr
	for *iter != nil {
		slice = append(slice, _GStringToGoString(*iter))
		iter = C.next_gcharptr(iter)
	}
	C.g_strfreev(arr)
	return slice
}
func _GoStringToGString(s string) *C.gchar {
	if s == "" {
		return nil
	}
	return (*C.gchar)(unsafe.Pointer(C.CString(s)))
}