glib2 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/ext/glib2/extconf.rb +1 -0
  2. data/ext/glib2/glib2.def +23 -0
  3. data/ext/glib2/rbgcompat.h +19 -5
  4. data/ext/glib2/rbglib.c +607 -160
  5. data/ext/glib2/rbglib.h +81 -26
  6. data/ext/glib2/rbglib2conversions.h +57 -0
  7. data/ext/glib2/rbglib_bookmarkfile.c +117 -107
  8. data/ext/glib2/rbglib_completion.c +37 -26
  9. data/ext/glib2/rbglib_convert.c +42 -30
  10. data/ext/glib2/rbglib_error.c +20 -10
  11. data/ext/glib2/rbglib_fileutils.c +48 -37
  12. data/ext/glib2/rbglib_i18n.c +24 -14
  13. data/ext/glib2/rbglib_int64.c +24 -16
  14. data/ext/glib2/rbglib_iochannel.c +146 -204
  15. data/ext/glib2/rbglib_iochannel_win32_socket.c +56 -0
  16. data/ext/glib2/rbglib_iochannelerror.c +49 -0
  17. data/ext/glib2/rbglib_keyfile.c +171 -182
  18. data/ext/glib2/rbglib_maincontext.c +107 -92
  19. data/ext/glib2/rbglib_mainloop.c +34 -21
  20. data/ext/glib2/rbglib_messages.c +53 -44
  21. data/ext/glib2/rbglib_pollfd.c +37 -26
  22. data/ext/glib2/rbglib_shell.c +29 -22
  23. data/ext/glib2/rbglib_shellerror.c +34 -0
  24. data/ext/glib2/rbglib_source.c +49 -36
  25. data/ext/glib2/rbglib_spawn.c +50 -61
  26. data/ext/glib2/rbglib_spawnerror.c +53 -0
  27. data/ext/glib2/rbglib_threads.c +28 -16
  28. data/ext/glib2/rbglib_timer.c +35 -24
  29. data/ext/glib2/rbglib_ucs4.c +79 -0
  30. data/ext/glib2/rbglib_unichar.c +209 -0
  31. data/ext/glib2/rbglib_unicode.c +34 -584
  32. data/ext/glib2/rbglib_utf16.c +78 -0
  33. data/ext/glib2/rbglib_utf8.c +259 -0
  34. data/ext/glib2/rbglib_utils.c +95 -91
  35. data/ext/glib2/rbglib_win32.c +52 -45
  36. data/ext/glib2/rbglibdeprecated.c +56 -0
  37. data/ext/glib2/rbglibdeprecated.h +34 -0
  38. data/ext/glib2/rbgobj_boxed.c +40 -33
  39. data/ext/glib2/rbgobj_closure.c +45 -34
  40. data/ext/glib2/rbgobj_convert.c +19 -9
  41. data/ext/glib2/rbgobj_enumflags.c +109 -0
  42. data/ext/glib2/rbgobj_enums.c +67 -646
  43. data/ext/glib2/rbgobj_flags.c +522 -0
  44. data/ext/glib2/rbgobj_fundamental.c +19 -6
  45. data/ext/glib2/rbgobj_object.c +90 -81
  46. data/ext/glib2/rbgobj_param.c +78 -83
  47. data/ext/glib2/rbgobj_paramspecs.c +20 -12
  48. data/ext/glib2/rbgobj_signal.c +248 -193
  49. data/ext/glib2/rbgobj_strv.c +20 -10
  50. data/ext/glib2/rbgobj_type.c +153 -149
  51. data/ext/glib2/rbgobj_typeinstance.c +49 -39
  52. data/ext/glib2/rbgobj_typeinterface.c +37 -27
  53. data/ext/glib2/rbgobj_typemodule.c +39 -29
  54. data/ext/glib2/rbgobj_typeplugin.c +36 -26
  55. data/ext/glib2/rbgobj_value.c +41 -11
  56. data/ext/glib2/rbgobj_valuearray.c +59 -23
  57. data/ext/glib2/rbgobj_valuetypes.c +27 -17
  58. data/ext/glib2/rbgobject.c +26 -40
  59. data/ext/glib2/rbgobject.h +38 -20
  60. data/ext/glib2/rbgprivate.h +87 -5
  61. data/ext/glib2/rbgutil.c +52 -238
  62. data/ext/glib2/rbgutil.h +55 -42
  63. data/ext/glib2/rbgutil_callback.c +47 -12
  64. data/ext/glib2/rbgutil_list.c +173 -0
  65. data/ext/glib2/rbgutil_list.h +85 -0
  66. data/ext/glib2/rbgutildeprecated.c +252 -0
  67. data/ext/glib2/rbgutildeprecated.h +63 -0
  68. data/lib/glib-mkenums.rb +2 -2
  69. data/lib/glib2.rb +2 -25
  70. data/lib/glib2/deprecatable.rb +149 -0
  71. data/lib/gnome2-raketask.rb +45 -15
  72. data/lib/gnome2-win32-binary-downloader.rb +1 -1
  73. data/lib/mkmf-gnome2.rb +37 -18
  74. data/test/test_flags.rb +129 -0
  75. data/test/test_key_file.rb +6 -2
  76. data/test/test_spawn.rb +33 -0
  77. metadata +26 -7
  78. data/ChangeLog +0 -3513
@@ -1,13 +1,23 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /************************************************
3
-
4
- rbgutil.c -
5
-
6
- $Author: sakai $
7
- $Date: 2007/07/07 08:15:26 $
8
-
9
- Copyright (C) 2002-2004 Masao Mutoh
10
- ************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2004 Masao Mutoh
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
11
21
 
12
22
  #include "rbgprivate.h"
13
23
 
@@ -18,6 +28,32 @@ static ID id_set_property;
18
28
  static ID id_to_a;
19
29
  static ID id_allocate;
20
30
 
31
+ void
32
+ rbg_define_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)
33
+ {
34
+ rb_define_method(klass, name, func, argc);
35
+ if ((argc != 1) || strncmp(name, "set_", 4))
36
+ return;
37
+
38
+ name += 4;
39
+ rb_funcall(klass, rbgutil_id_module_eval, 1,
40
+ CSTR2RVAL_FREE(g_strdup_printf("def %s=(val); set_%s(val); val; end\n",
41
+ name, name)));
42
+ }
43
+
44
+ void
45
+ rbg_define_singleton_method(VALUE obj, const char *name, VALUE (*func)(ANYARGS), int argc)
46
+ {
47
+ rb_define_singleton_method(obj, name, func, argc);
48
+ if ((argc != 1) || strncmp(name, "set_", 4))
49
+ return;
50
+
51
+ name += 4;
52
+ rb_funcall(obj, rbgutil_id_module_eval, 1,
53
+ CSTR2RVAL_FREE(g_strdup_printf("def self.%s=(val); set_%s(val); val; end\n",
54
+ name, name)));
55
+ }
56
+
21
57
  void
22
58
  rbgutil_set_properties(VALUE self, VALUE hash)
23
59
  {
@@ -39,238 +75,16 @@ rbgutil_set_properties(VALUE self, VALUE hash)
39
75
  }
40
76
 
41
77
  VALUE
42
- rbgutil_glist2ary(const GList *const list)
43
- {
44
- VALUE ary;
45
- const GList *i;
46
-
47
- ary = rb_ary_new();
48
- for (i = list; i != NULL; i = i->next)
49
- rb_ary_push(ary, GOBJ2RVAL(i->data));
50
-
51
- return ary;
52
- }
53
-
54
- VALUE
55
- rbgutil_glist2ary_and_free_body(VALUE data)
56
- {
57
- VALUE ary;
58
- GList *i;
59
-
60
- ary = rb_ary_new();
61
- for (i = (GList *)data; i != NULL; i = i->next)
62
- rb_ary_push(ary, GOBJ2RVAL(i->data));
63
-
64
- return ary;
65
- }
66
-
67
- VALUE
68
- rbgutil_glist2ary_and_free_ensure(VALUE data)
69
- {
70
- g_list_free((GList *)data);
71
-
72
- return Qnil;
73
- }
74
-
75
- VALUE
76
- rbgutil_glist2ary_and_free(GList *const list)
77
- {
78
- return rb_ensure(rbgutil_glist2ary_and_free_body, (VALUE)list,
79
- rbgutil_glist2ary_and_free_ensure, (VALUE)list);
80
- }
81
-
82
- VALUE
83
- rbgutil_glist2ary_boxed(const GList *const list, GType gtype)
84
- {
85
- VALUE ary;
86
- const GList *i;
87
-
88
- ary = rb_ary_new();
89
- for (i = list; i != NULL; i = i->next)
90
- rb_ary_push(ary, BOXED2RVAL(i->data, gtype));
91
-
92
- return ary;
93
- }
94
-
95
- struct rbgutil_glist2ary_boxed_and_free_data
96
- {
97
- GList *const list;
98
- GType gtype;
99
- };
100
-
101
- VALUE
102
- rbgutil_glist2ary_boxed_and_free_body(VALUE data)
103
- {
104
- struct rbgutil_glist2ary_boxed_and_free_data *real;
105
- VALUE ary;
106
- GList *i;
107
-
108
- real = (struct rbgutil_glist2ary_boxed_and_free_data *)data;
109
- ary = rb_ary_new();
110
- for (i = real->list; i != NULL; i = i->next)
111
- rb_ary_push(ary, BOXED2RVAL(i->data, real->gtype));
112
-
113
- return ary;
114
- }
115
-
116
- VALUE
117
- rbgutil_glist2ary_boxed_and_free_ensure(VALUE data)
118
- {
119
- g_list_free(((struct rbgutil_glist2ary_boxed_and_free_data *)data)->list);
120
-
121
- return Qnil;
122
- }
123
-
124
- VALUE
125
- rbgutil_glist2ary_boxed_and_free(GList *const list, GType gtype)
126
- {
127
- struct rbgutil_glist2ary_boxed_and_free_data data = { list, gtype };
128
-
129
- return rb_ensure(rbgutil_glist2ary_boxed_and_free_body, (VALUE)&data,
130
- rbgutil_glist2ary_boxed_and_free_ensure, (VALUE)&data);
131
- }
132
-
133
- VALUE
134
- rbgutil_glist2ary_string(const GList *const list)
135
- {
136
- VALUE ary;
137
- const GList *i;
138
-
139
- ary = rb_ary_new();
140
- for (i = list; i != NULL; i = i->next)
141
- rb_ary_push(ary, CSTR2RVAL(i->data));
142
-
143
- return ary;
144
- }
145
-
146
- static VALUE
147
- rbgutil_glist2ary_string_and_free_body(VALUE data)
148
- {
149
- VALUE ary;
150
- GList *i;
151
-
152
- ary = rb_ary_new();
153
- for (i = (GList *)data; i != NULL; i = i->next)
154
- rb_ary_push(ary, CSTR2RVAL(i->data));
155
-
156
- return ary;
157
- }
158
-
159
- static VALUE
160
- rbgutil_glist2ary_string_and_free_ensure(VALUE data)
161
- {
162
- GList *i;
163
-
164
- for (i = (GList *)data; i != NULL; i = i->next)
165
- g_free(i->data);
166
- g_list_free((GList *)data);
167
-
168
- return Qnil;
169
- }
170
-
171
- VALUE
172
- rbgutil_glist2ary_string_and_free(GList *const list)
173
- {
174
- return rb_ensure(rbgutil_glist2ary_string_and_free_body, (VALUE)list,
175
- rbgutil_glist2ary_string_and_free_ensure, (VALUE)list);
176
- }
177
-
178
- VALUE
179
- rbgutil_gslist2ary(const GSList *const list)
180
- {
181
- VALUE ary;
182
- const GSList *i;
183
-
184
- ary = rb_ary_new();
185
- for (i = list; i != NULL; i = i->next)
186
- rb_ary_push(ary, GOBJ2RVAL(i->data));
187
-
188
- return ary;
189
- }
190
-
191
- static VALUE
192
- rbgutil_gslist2ary_and_free_body(VALUE data)
193
- {
194
- VALUE ary;
195
- GSList *i;
196
-
197
- ary = rb_ary_new();
198
- for (i = (GSList *)data; i != NULL; i = i->next)
199
- rb_ary_push(ary, GOBJ2RVAL(i->data));
200
-
201
- return ary;
202
- }
203
-
204
- static VALUE
205
- rbgutil_gslist2ary_and_free_ensure(VALUE data)
206
- {
207
- g_slist_free((GSList *)data);
208
-
209
- return Qnil;
210
- }
211
-
212
- VALUE
213
- rbgutil_gslist2ary_and_free(GSList *const list)
214
- {
215
- return rb_ensure(rbgutil_gslist2ary_and_free_body, (VALUE)list,
216
- rbgutil_gslist2ary_and_free_ensure, (VALUE)list);
217
- }
218
-
219
- VALUE
220
- rbgutil_gslist2ary_boxed(const GSList *const list, GType gtype)
221
- {
222
- VALUE ary;
223
- const GSList *i;
224
-
225
- ary = rb_ary_new();
226
- for (i = list; i != NULL; i = i->next)
227
- rb_ary_push(ary, BOXED2RVAL(i->data, gtype));
228
-
229
- return ary;
230
- }
231
-
232
- struct rbgutil_gslist2ary_boxed_and_free_data
233
- {
234
- GSList *const list;
235
- GType gtype;
236
- };
237
-
238
- static VALUE
239
- rbgutil_gslist2ary_boxed_and_free_body(VALUE data)
240
- {
241
- struct rbgutil_gslist2ary_boxed_and_free_data *real;
242
- VALUE ary;
243
- GSList *i;
244
-
245
- real = (struct rbgutil_gslist2ary_boxed_and_free_data *)data;
246
- ary = rb_ary_new();
247
- for (i = real->list; i != NULL; i = i->next)
248
- rb_ary_push(ary, BOXED2RVAL(i->data, real->gtype));
249
-
250
- return ary;
251
- }
252
-
253
- static VALUE
254
- rbgutil_gslist2ary_boxed_and_free_ensure(VALUE data)
255
- {
256
- g_slist_free(((struct rbgutil_gslist2ary_boxed_and_free_data *)data)->list);
257
-
258
- return Qnil;
259
- }
260
-
261
- VALUE
262
- rbgutil_gslist2ary_boxed_and_free(GSList *const list, GType gtype)
78
+ rbgutil_def_setters(VALUE klass)
263
79
  {
264
- struct rbgutil_gslist2ary_boxed_and_free_data data = { list, gtype };
265
-
266
- return rb_ensure(rbgutil_gslist2ary_boxed_and_free_body, (VALUE)&data,
267
- rbgutil_gslist2ary_boxed_and_free_ensure, (VALUE)&data);
80
+ return rb_funcall(mGLib, id_add_one_arg_setter, 1, klass);
268
81
  }
269
82
 
270
- VALUE
271
- rbgutil_def_setters(VALUE klass)
83
+ void
84
+ rbgutil_glibid_r2g_func(VALUE from, GValue* to)
272
85
  {
273
- return rb_funcall(mGLib, id_add_one_arg_setter, 1, klass);
86
+ VALUE buffer;
87
+ g_value_set_string(to, RVAL2GLIBID(from, buffer));
274
88
  }
275
89
 
276
90
  VALUE
@@ -303,7 +117,7 @@ rbgutil_string_set_utf8_encoding(VALUE string)
303
117
  }
304
118
 
305
119
  void
306
- Init_gutil()
120
+ Init_gutil(void)
307
121
  {
308
122
  rbgutil_id_module_eval = rb_intern("module_eval");
309
123
  id_set_property = rb_intern("set_property");
@@ -1,13 +1,23 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /************************************************
3
-
4
- rbgutil.h -
5
-
6
- $Author: sakai $
7
- $Date: 2007/07/08 03:17:21 $
8
-
9
- Copyright (C) 2002,2003 Masao Mutoh
10
- ************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002,2003 Masao Mutoh
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
11
21
 
12
22
  #ifndef __RBGUTIL_H__
13
23
  #define __RBGUTIL_H__
@@ -18,15 +28,43 @@
18
28
  # include <ruby/encoding.h>
19
29
  #endif
20
30
  #include "rbglib.h"
31
+ #include "rbgutil_list.h"
32
+ #include "rbgutildeprecated.h"
21
33
 
22
34
  #ifdef __cplusplus
23
35
  extern "C" {
24
36
  #endif /* __cplusplus */
25
37
 
26
- #define G_DEF_SETTER(klass, name) \
27
- rb_funcall(klass, rbgutil_id_module_eval, 1, rb_str_new2( \
28
- "def " name "=(val); set_" name "(val); val; end\n"))
29
- #define G_DEF_SETTERS(klass) rbgutil_def_setters(klass)
38
+ #define RG_DEF_MODFUNC(method, argc) \
39
+ rb_define_module_function(RG_TARGET_NAMESPACE, #method, rg_m_ ## method, argc)
40
+ #define RG_DEF_MODFUNC_P(method, argc) \
41
+ rb_define_module_function(RG_TARGET_NAMESPACE, #method"?", rg_m_ ## method ## _p, argc)
42
+ #define RG_DEF_MODFUNC_OPERATOR(ope, func, argc) \
43
+ rb_define_module_function(RG_TARGET_NAMESPACE, ope, rg_m_operator_ ## func, argc)
44
+ #define RG_DEF_SMETHOD(method, argc) \
45
+ rb_define_singleton_method(RG_TARGET_NAMESPACE, #method, rg_s_ ## method, argc)
46
+ #define RG_DEF_SMETHOD_P(method, argc) \
47
+ rb_define_singleton_method(RG_TARGET_NAMESPACE, #method"?", rg_s_ ## method ## _p, argc)
48
+ #define RG_DEF_SMETHOD_BANG(method, argc) \
49
+ rb_define_singleton_method(RG_TARGET_NAMESPACE, #method"!", rg_s_ ## method ## _bang, argc)
50
+ #define RG_DEF_SMETHOD_OPERATOR(ope, func, argc) \
51
+ rb_define_singleton_method(RG_TARGET_NAMESPACE, ope, rg_s_operator_ ## func, argc)
52
+ #define RG_DEF_METHOD(method, argc) \
53
+ rb_define_method(RG_TARGET_NAMESPACE, #method, rg_ ## method, argc)
54
+ #define RG_DEF_METHOD_P(method, argc) \
55
+ rb_define_method(RG_TARGET_NAMESPACE, #method"?", rg_ ## method ## _p, argc)
56
+ #define RG_DEF_METHOD_BANG(method, argc) \
57
+ rb_define_method(RG_TARGET_NAMESPACE, #method"!", rg_ ## method ## _bang, argc)
58
+ #define RG_DEF_METHOD_OPERATOR(ope, func, argc) \
59
+ rb_define_method(RG_TARGET_NAMESPACE, ope, rg_operator_ ## func, argc)
60
+ #define RG_DEF_ATTR(attr, read, write, ex) \
61
+ rb_attr(RG_TARGET_NAMESPACE, rb_intern(attr), read, write, ex)
62
+ #define RG_DEF_ALIAS(new, old) rb_define_alias(RG_TARGET_NAMESPACE, new, old)
63
+
64
+ #define RG_REG_GLIBID_SETTER(name) \
65
+ rbgobj_register_property_setter(CLASS2GTYPE(RG_TARGET_NAMESPACE), name, rbgutil_glibid_r2g_func)
66
+ #define RG_REG_SYMBOL_GETTER(name) \
67
+ rbgobj_register_property_getter(CLASS2GTYPE(RG_TARGET_NAMESPACE), name, rbgutil_sym_g2r_func)
30
68
 
31
69
  #define G_REPLACE_SET_PROPERTY(klass, name, function, args) \
32
70
  rb_undef_method(klass, "set_" name); \
@@ -43,38 +81,15 @@ extern "C" {
43
81
  rb_define_method(klass, name, function, args)
44
82
 
45
83
  #define G_SET_PROPERTIES(self, hash) (rbgutil_set_properties(self, hash))
46
- #define G_SET_SYMBOL_PROPERTY(gtype, name) \
47
- rbgobj_register_property_getter(gtype, name, rbgutil_sym_g2r_func)
48
84
  #define G_PROTECT_CALLBACK(func, data) (rbgutil_invoke_callback((VALUE(*)(VALUE))func, (VALUE)data))
49
85
 
50
- #define GLIST2ARY(list) (rbgutil_glist2ary(list))
51
- #define GLIST2ARY_FREE(list) (rbgutil_glist2ary_and_free(list))
52
- #define GLIST2ARYF(list) (GLIST2ARY_FREE(list))
53
- #define GLIST2ARY2(list, gtype) (rbgutil_glist2ary_boxed(list, gtype))
54
- #define GLIST2ARY2F(list, gtype) (rbgutil_glist2ary_boxed_and_free(list, gtype))
55
- #define GLIST2ARY_STR(list) (rbgutil_glist2ary_string(list))
56
- #define GLIST2ARY_STR_FREE(list) (rbgutil_glist2ary_string_and_free(list))
57
- #define GSLIST2ARY(list) (rbgutil_gslist2ary(list))
58
- #define GSLIST2ARY_FREE(list) (rbgutil_gslist2ary_and_free(list))
59
- #define GSLIST2ARYF(list) (GSLIST2ARY_FREE(list))
60
- #define GSLIST2ARY2(list, gtype) (rbgutil_gslist2ary_boxed(list, gtype))
61
- #define GSLIST2ARY2F(list, gtype) (rbgutil_gslist2ary_boxed_and_free(list, gtype))
62
-
63
86
  #define RBG_STRING_SET_UTF8_ENCODING(string) \
64
87
  (rbgutil_string_set_utf8_encoding(string))
65
88
 
89
+ extern void rbg_define_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc);
90
+ extern void rbg_define_singleton_method(VALUE obj, const char *name, VALUE (*func)(ANYARGS), int argc);
66
91
  extern VALUE rbgutil_def_setters(VALUE klass);
67
92
  extern void rbgutil_set_properties(VALUE self, VALUE hash);
68
- extern VALUE rbgutil_glist2ary(const GList *list);
69
- extern VALUE rbgutil_glist2ary_and_free(GList* list);
70
- extern VALUE rbgutil_glist2ary_boxed(const GList *list, GType gtype);
71
- extern VALUE rbgutil_glist2ary_boxed_and_free(GList *list, GType gtype);
72
- extern VALUE rbgutil_glist2ary_string(const GList *list);
73
- extern VALUE rbgutil_glist2ary_string_and_free(GList *list);
74
- extern VALUE rbgutil_gslist2ary(const GSList *list);
75
- extern VALUE rbgutil_gslist2ary_and_free(GSList *list);
76
- extern VALUE rbgutil_gslist2ary_boxed(const GSList *list, GType gtype);
77
- extern VALUE rbgutil_gslist2ary_boxed_and_free(GSList *list, GType gtype);
78
93
  extern VALUE rbgutil_protect(VALUE (*proc) (VALUE), VALUE data);
79
94
  extern VALUE rbgutil_invoke_callback(VALUE (*func)(VALUE), VALUE arg);
80
95
  extern void rbgutil_start_callback_dispatch_thread(void);
@@ -84,13 +99,11 @@ extern VALUE rbgutil_string_set_utf8_encoding(VALUE string);
84
99
 
85
100
  /*< protected >*/
86
101
  RUBY_GLIB2_VAR ID rbgutil_id_module_eval;
102
+ extern void rbgutil_glibid_r2g_func(VALUE from, GValue* to);
87
103
  extern VALUE rbgutil_sym_g2r_func(const GValue *from);
88
104
 
89
- /* deprecated */
90
- #define G_BLOCK_PROC rb_block_proc
91
-
92
105
  #ifdef __cplusplus
93
106
  }
94
107
  #endif /* __cplusplus */
95
108
 
96
- #endif /* __RBGLIB_H__ */
109
+ #endif /* __RBGUTIL_H__ */