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
@@ -0,0 +1,78 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2006 Kouhei Sutou
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
+ */
21
+
22
+ #include "rbgprivate.h"
23
+ #include "rbglib.h"
24
+
25
+ #define RG_TARGET_NAMESPACE mUTF16
26
+
27
+ static VALUE
28
+ rg_m_to_ucs4(G_GNUC_UNUSED VALUE self, VALUE rb_utf16)
29
+ {
30
+ VALUE result;
31
+ gunichar *ucs4;
32
+ gunichar2 *utf16;
33
+ glong len, items_written;
34
+ GError *error = NULL;
35
+
36
+ utf16 = (gunichar2 *)StringValueCStr(rb_utf16);
37
+ len = RSTRING_LEN(rb_utf16) / sizeof(*utf16);
38
+
39
+ ucs4 = g_utf16_to_ucs4(utf16, len, NULL, &items_written, &error);
40
+
41
+ if (error)
42
+ RAISE_GERROR(error);
43
+
44
+ result = CSTR2RVAL_LEN_UCS4((char *)ucs4, items_written * sizeof(*ucs4));
45
+ g_free(ucs4);
46
+ return result;
47
+ }
48
+
49
+ static VALUE
50
+ rg_m_to_utf8(G_GNUC_UNUSED VALUE self, VALUE rb_utf16)
51
+ {
52
+ VALUE result;
53
+ gchar *utf8;
54
+ gunichar2 *utf16;
55
+ glong len, items_written;
56
+ GError *error = NULL;
57
+
58
+ utf16 = (gunichar2 *)StringValueCStr(rb_utf16);
59
+ len = RSTRING_LEN(rb_utf16) / sizeof(*utf16);
60
+
61
+ utf8 = g_utf16_to_utf8(utf16, len, NULL, &items_written, &error);
62
+
63
+ if (error)
64
+ RAISE_GERROR(error);
65
+
66
+ result = CSTR2RVAL_LEN(utf8, items_written * sizeof(*utf8));
67
+ g_free(utf8);
68
+ return result;
69
+ }
70
+
71
+ void
72
+ Init_glib_utf16(void)
73
+ {
74
+ VALUE RG_TARGET_NAMESPACE = rb_define_module_under(mGLib, "UTF16");
75
+
76
+ RG_DEF_MODFUNC(to_ucs4, 1);
77
+ RG_DEF_MODFUNC(to_utf8, 1);
78
+ }
@@ -0,0 +1,259 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2006 Kouhei Sutou
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
+ */
21
+
22
+ #include "rbgprivate.h"
23
+ #include "rbglib.h"
24
+
25
+ #define RG_TARGET_NAMESPACE mUTF8
26
+
27
+ static VALUE
28
+ rg_m_get_char(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
29
+ {
30
+ VALUE utf8, validate;
31
+ gunichar result;
32
+
33
+ rb_scan_args(argc, argv, "11", &utf8, &validate);
34
+
35
+ if (RVAL2CBOOL(validate)) {
36
+ StringValue(utf8);
37
+ result = g_utf8_get_char_validated(RSTRING_PTR(utf8),
38
+ RSTRING_LEN(utf8));
39
+ if (result == (gunichar)-1) {
40
+ return INT2NUM(-1);
41
+ } else if (result == (gunichar)-2) {
42
+ return INT2NUM(-2);
43
+ }
44
+ } else {
45
+ result = g_utf8_get_char(StringValueCStr(utf8));
46
+ }
47
+
48
+ return UINT2NUM(result);
49
+ }
50
+
51
+ static VALUE
52
+ rg_m_size(G_GNUC_UNUSED VALUE self, VALUE rb_utf8)
53
+ {
54
+ gchar *utf8;
55
+
56
+ utf8 = StringValueCStr(rb_utf8);
57
+ return INT2NUM(g_utf8_strlen(utf8, RSTRING_LEN(rb_utf8)));
58
+ }
59
+
60
+ static VALUE
61
+ rg_m_reverse(G_GNUC_UNUSED VALUE self, VALUE rb_utf8)
62
+ {
63
+ VALUE result;
64
+ gchar *utf8, *reversed_utf8;
65
+
66
+ utf8 = StringValueCStr(rb_utf8);
67
+ reversed_utf8 = g_utf8_strreverse(utf8, RSTRING_LEN(rb_utf8));
68
+ result = CSTR2RVAL(reversed_utf8);
69
+ g_free(reversed_utf8);
70
+ return result;
71
+ }
72
+
73
+ static VALUE
74
+ rg_m_validate(G_GNUC_UNUSED VALUE self, VALUE str)
75
+ {
76
+ StringValue(str);
77
+ return CBOOL2RVAL(g_utf8_validate(RSTRING_PTR(str), RSTRING_LEN(str),
78
+ NULL));
79
+ }
80
+
81
+ static VALUE
82
+ rg_m_upcase(G_GNUC_UNUSED VALUE self, VALUE rb_utf8)
83
+ {
84
+ VALUE result;
85
+ gchar *utf8, *upcased_utf8;
86
+
87
+ utf8 = StringValueCStr(rb_utf8);
88
+ upcased_utf8 = g_utf8_strup(utf8, RSTRING_LEN(rb_utf8));
89
+ result = CSTR2RVAL(upcased_utf8);
90
+ g_free(upcased_utf8);
91
+ return result;
92
+ }
93
+
94
+ static VALUE
95
+ rg_m_downcase(G_GNUC_UNUSED VALUE self, VALUE rb_utf8)
96
+ {
97
+ VALUE result;
98
+ gchar *utf8, *downcased_utf8;
99
+
100
+ utf8 = StringValueCStr(rb_utf8);
101
+ downcased_utf8 = g_utf8_strdown(utf8, RSTRING_LEN(rb_utf8));
102
+ result = CSTR2RVAL(downcased_utf8);
103
+ g_free(downcased_utf8);
104
+ return result;
105
+ }
106
+
107
+ static VALUE
108
+ rg_m_casefold(G_GNUC_UNUSED VALUE self, VALUE rb_utf8)
109
+ {
110
+ VALUE result;
111
+ gchar *utf8, *casefolded_utf8;
112
+
113
+ utf8 = StringValueCStr(rb_utf8);
114
+ casefolded_utf8 = g_utf8_casefold(utf8, RSTRING_LEN(rb_utf8));
115
+ result = CSTR2RVAL(casefolded_utf8);
116
+ g_free(casefolded_utf8);
117
+ return result;
118
+ }
119
+
120
+ static VALUE
121
+ rg_m_normalize(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
122
+ {
123
+ VALUE rb_utf8, rb_mode, result;
124
+ gchar *utf8, *normalized_utf8;
125
+ GNormalizeMode mode = G_NORMALIZE_DEFAULT;
126
+
127
+ rb_scan_args(argc, argv, "11", &rb_utf8, &rb_mode);
128
+
129
+ if (!NIL_P(rb_mode))
130
+ mode = RVAL2GENUM(rb_mode, G_TYPE_NORMALIZE_MODE);
131
+
132
+ utf8 = StringValueCStr(rb_utf8);
133
+ normalized_utf8 = g_utf8_normalize(utf8, RSTRING_LEN(rb_utf8), mode);
134
+ result = CSTR2RVAL(normalized_utf8);
135
+ g_free(normalized_utf8);
136
+ return result;
137
+ }
138
+
139
+ static VALUE
140
+ rg_m_collate(G_GNUC_UNUSED VALUE self, VALUE utf8a, VALUE utf8b)
141
+ {
142
+ return INT2NUM(g_utf8_collate(StringValueCStr(utf8a),
143
+ StringValueCStr(utf8b)));
144
+ }
145
+
146
+ static VALUE
147
+ rg_m_collate_key(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
148
+ {
149
+ VALUE result, rb_utf8, for_filename;
150
+ gchar *key, *utf8;
151
+ gssize len;
152
+
153
+ rb_scan_args(argc, argv, "11", &rb_utf8, &for_filename);
154
+
155
+ utf8 = StringValueCStr(rb_utf8);
156
+ len = RSTRING_LEN(rb_utf8);
157
+ #if GLIB_CHECK_VERSION(2,8,0)
158
+ if (RVAL2CBOOL(for_filename))
159
+ key = g_utf8_collate_key_for_filename(utf8, len);
160
+ else
161
+ #endif
162
+ key = g_utf8_collate_key(utf8, len);
163
+
164
+ result = CSTR2RVAL(key);
165
+ g_free(key);
166
+ return result;
167
+ }
168
+
169
+ static VALUE
170
+ rg_m_to_utf16(G_GNUC_UNUSED VALUE self, VALUE rb_utf8)
171
+ {
172
+ VALUE result;
173
+ gchar *utf8;
174
+ gunichar2 *utf16;
175
+ glong len, items_written;
176
+ GError *error = NULL;
177
+
178
+ utf8 = StringValueCStr(rb_utf8);
179
+ len = RSTRING_LEN(rb_utf8);
180
+
181
+ utf16 = g_utf8_to_utf16(utf8, len, NULL, &items_written, &error);
182
+
183
+ if (error)
184
+ RAISE_GERROR(error);
185
+
186
+ result = CSTR2RVAL_LEN_UTF16((char *)utf16,
187
+ items_written * sizeof(*utf16));
188
+ g_free(utf16);
189
+ return result;
190
+ }
191
+
192
+ static VALUE
193
+ rg_m_to_ucs4(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
194
+ {
195
+ VALUE result, rb_utf8, is_fast;
196
+ gchar *utf8;
197
+ gunichar *ucs4;
198
+ glong len, items_written;
199
+
200
+ rb_scan_args(argc, argv, "11", &rb_utf8, &is_fast);
201
+
202
+ utf8 = StringValueCStr(rb_utf8);
203
+ len = RSTRING_LEN(rb_utf8);
204
+
205
+ if (RVAL2CBOOL(is_fast)) {
206
+ ucs4 = g_utf8_to_ucs4_fast(utf8, len, &items_written);
207
+ } else {
208
+ GError *error = NULL;
209
+ ucs4 = g_utf8_to_ucs4(utf8, len, NULL, &items_written, &error);
210
+
211
+ if (error)
212
+ RAISE_GERROR(error);
213
+ }
214
+
215
+ result = CSTR2RVAL_LEN_UCS4((char *)ucs4, items_written * sizeof(*ucs4));
216
+ g_free(ucs4);
217
+ return result;
218
+ }
219
+
220
+ void
221
+ Init_glib_utf8(void)
222
+ {
223
+ VALUE RG_TARGET_NAMESPACE = rb_define_module_under(mGLib, "UTF8");
224
+
225
+ /*
226
+ Not implemented.
227
+ g_utf8_next_char
228
+ */
229
+ RG_DEF_MODFUNC(get_char, -1);
230
+ /*
231
+ Not implemented.
232
+ g_utf8_offset_to_pointer
233
+ g_utf8_pointer_to_offset
234
+ g_utf8_prev_char
235
+ g_utf8_find_next_char
236
+ g_utf8_find_prev_char
237
+ g_utf8_prev_char
238
+ */
239
+ RG_DEF_MODFUNC(size, 1);
240
+ /*
241
+ Not implemented.
242
+ g_utf8_strncpy
243
+ g_utf8_strrchr
244
+ */
245
+ RG_DEF_MODFUNC(reverse, 1);
246
+ RG_DEF_MODFUNC(validate, 1);
247
+
248
+ RG_DEF_MODFUNC(upcase, 1);
249
+ RG_DEF_MODFUNC(downcase, 1);
250
+ RG_DEF_MODFUNC(casefold, 1);
251
+
252
+ RG_DEF_MODFUNC(normalize, -1);
253
+
254
+ RG_DEF_MODFUNC(collate, 2);
255
+ RG_DEF_MODFUNC(collate_key, -1);
256
+
257
+ RG_DEF_MODFUNC(to_utf16, 1);
258
+ RG_DEF_MODFUNC(to_ucs4, -1);
259
+ }
@@ -1,63 +1,74 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /**********************************************************************
3
-
4
- rbglib_utils.c -
5
-
6
- $Author: ggc $
7
- $Date: 2007/07/13 16:07:28 $
8
-
9
- Copyright (C) 2004 Ruby-GNOME2 Project Team
10
- Copyright (C) 2004 Pascal Terjan
11
-
12
- **********************************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2004 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2004 Pascal Terjan
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
+ * MA 02110-1301 USA
21
+ */
13
22
 
14
23
  #include "rbgprivate.h"
15
24
 
25
+ #define RG_TARGET_NAMESPACE mGLib
26
+
16
27
  #if GLIB_CHECK_VERSION(2,2,0)
17
28
  static VALUE
18
- rbglib_m_application_name(VALUE self)
29
+ rg_m_application_name(G_GNUC_UNUSED VALUE self)
19
30
  {
20
31
  return CSTR2RVAL(g_get_application_name());
21
32
  }
22
33
 
23
34
  static VALUE
24
- rbglib_m_set_application_name(VALUE self, VALUE application_name)
35
+ rg_m_set_application_name(VALUE self, VALUE application_name)
25
36
  {
26
- g_set_prgname(NIL_P(application_name) ? NULL : RVAL2CSTR(application_name));
37
+ g_set_prgname(RVAL2CSTR_ACCEPT_NIL(application_name));
27
38
  return self;
28
39
  }
29
40
  #endif
30
41
 
31
42
  static VALUE
32
- rbglib_m_prgname(VALUE self)
43
+ rg_m_prgname(G_GNUC_UNUSED VALUE self)
33
44
  {
34
45
  return CSTR2RVAL(g_get_prgname());
35
46
  }
36
47
 
37
48
  static VALUE
38
- rbglib_m_set_prgname(VALUE self, VALUE prgname)
49
+ rg_m_set_prgname(VALUE self, VALUE prgname)
39
50
  {
40
- g_set_prgname(NIL_P(prgname) ? NULL : RVAL2CSTR(prgname));
51
+ g_set_prgname(RVAL2CSTR_ACCEPT_NIL(prgname));
41
52
  return self;
42
53
  }
43
54
 
44
55
  static VALUE
45
- rbglib_m_env(VALUE self, VALUE variable)
56
+ rg_m_getenv(G_GNUC_UNUSED VALUE self, VALUE variable)
46
57
  {
47
58
  return CSTR2RVAL(g_getenv(RVAL2CSTR(variable)));
48
59
  }
49
60
 
50
61
  #if GLIB_CHECK_VERSION(2,4,0)
51
62
  static VALUE
52
- rbglib_m_setenv(VALUE self, VALUE variable, VALUE value, VALUE overwrite)
63
+ rg_m_setenv(G_GNUC_UNUSED VALUE self, VALUE variable, VALUE value, VALUE overwrite)
53
64
  {
54
65
  return CBOOL2RVAL(g_setenv(RVAL2CSTR(variable),
55
- NIL_P(value) ? NULL : RVAL2CSTR(value),
66
+ RVAL2CSTR_ACCEPT_NIL(value),
56
67
  RVAL2CBOOL(overwrite)));
57
68
  }
58
69
 
59
70
  static VALUE
60
- rbglib_m_unsetenv(VALUE self, VALUE variable)
71
+ rg_m_unsetenv(VALUE self, VALUE variable)
61
72
  {
62
73
  g_unsetenv(RVAL2CSTR(variable));
63
74
  return self;
@@ -65,9 +76,9 @@ rbglib_m_unsetenv(VALUE self, VALUE variable)
65
76
  #endif
66
77
 
67
78
  #if GLIB_CHECK_VERSION(2,8,0)
68
- #if HAVE_G_LISTENV
79
+ #ifdef HAVE_G_LISTENV
69
80
  static VALUE
70
- rbglib_m_listenv(VALUE self)
81
+ rg_m_listenv(VALUE self)
71
82
  {
72
83
  gchar** c_list;
73
84
  gchar** c_var;
@@ -83,51 +94,51 @@ rbglib_m_listenv(VALUE self)
83
94
  #endif
84
95
 
85
96
  static VALUE
86
- rbglib_m_host_name(VALUE self)
97
+ rg_m_host_name(G_GNUC_UNUSED VALUE self)
87
98
  {
88
99
  return CSTR2RVAL(g_get_host_name());
89
100
  }
90
101
  #endif
91
102
 
92
103
  static VALUE
93
- rbglib_m_user_name(VALUE self)
104
+ rg_m_user_name(G_GNUC_UNUSED VALUE self)
94
105
  {
95
106
  return CSTR2RVAL(g_get_user_name());
96
107
  }
97
108
 
98
109
  static VALUE
99
- rbglib_m_real_name(VALUE self)
110
+ rg_m_real_name(G_GNUC_UNUSED VALUE self)
100
111
  {
101
112
  return CSTR2RVAL(g_get_real_name());
102
113
  }
103
114
 
104
115
  #if GLIB_CHECK_VERSION(2, 6, 0)
105
116
  static VALUE
106
- rbglib_m_user_cache_dir(VALUE self)
117
+ rg_m_user_cache_dir(G_GNUC_UNUSED VALUE self)
107
118
  {
108
119
  return CSTR2RVAL(g_get_user_cache_dir());
109
120
  }
110
121
 
111
122
  static VALUE
112
- rbglib_m_user_data_dir(VALUE self)
123
+ rg_m_user_data_dir(G_GNUC_UNUSED VALUE self)
113
124
  {
114
125
  return CSTR2RVAL(g_get_user_data_dir());
115
126
  }
116
127
 
117
128
  static VALUE
118
- rbglib_m_user_config_dir(VALUE self)
129
+ rg_m_user_config_dir(G_GNUC_UNUSED VALUE self)
119
130
  {
120
131
  return CSTR2RVAL(g_get_user_config_dir());
121
132
  }
122
133
 
123
134
  static VALUE
124
- rbglib_m_system_data_dirs(VALUE self)
135
+ rg_m_system_data_dirs(G_GNUC_UNUSED VALUE self)
125
136
  {
126
137
  return STRV2RVAL((const gchar **)g_get_system_data_dirs());
127
138
  }
128
139
 
129
140
  static VALUE
130
- rbglib_m_system_config_dirs(VALUE self)
141
+ rg_m_system_config_dirs(G_GNUC_UNUSED VALUE self)
131
142
  {
132
143
  return STRV2RVAL((const gchar **)g_get_system_config_dirs());
133
144
  }
@@ -135,27 +146,27 @@ rbglib_m_system_config_dirs(VALUE self)
135
146
 
136
147
  #if GLIB_CHECK_VERSION(2, 14, 0)
137
148
  static VALUE
138
- rbglib_m_get_user_special_dir(VALUE self, VALUE directory)
149
+ rg_m_get_user_special_dir(G_GNUC_UNUSED VALUE self, VALUE directory)
139
150
  {
140
151
  return CSTR2RVAL(g_get_user_special_dir(RVAL2GENUM(directory,
141
- G_TYPE_USER_DIRECTORY)));
152
+ G_TYPE_USER_DIRECTORY)));
142
153
  }
143
154
  #endif
144
155
 
145
156
  static VALUE
146
- rbglib_m_home_dir(VALUE self)
157
+ rg_m_home_dir(G_GNUC_UNUSED VALUE self)
147
158
  {
148
159
  return CSTR2RVAL(g_get_home_dir());
149
160
  }
150
161
 
151
162
  static VALUE
152
- rbglib_m_tmp_dir(VALUE self)
163
+ rg_m_tmp_dir(G_GNUC_UNUSED VALUE self)
153
164
  {
154
165
  return CSTR2RVAL(g_get_tmp_dir());
155
166
  }
156
167
 
157
168
  static VALUE
158
- rbglib_m_current_dir(VALUE self)
169
+ rg_m_current_dir(G_GNUC_UNUSED VALUE self)
159
170
  {
160
171
  gchar* dir = g_get_current_dir();
161
172
  VALUE ret = CSTR2RVAL(dir);
@@ -164,25 +175,25 @@ rbglib_m_current_dir(VALUE self)
164
175
  }
165
176
 
166
177
  static VALUE
167
- rbglib_m_path_is_absolute(VALUE self, VALUE fname)
178
+ rg_m_path_is_absolute_p(G_GNUC_UNUSED VALUE self, VALUE fname)
168
179
  {
169
180
  return CBOOL2RVAL(g_path_is_absolute(RVAL2CSTR(fname)));
170
181
  }
171
182
 
172
183
  static VALUE
173
- rbglib_m_path_skip_root(VALUE self, VALUE fname)
184
+ rg_m_path_skip_root(G_GNUC_UNUSED VALUE self, VALUE fname)
174
185
  {
175
186
  return CSTR2RVAL(g_path_skip_root(RVAL2CSTR(fname)));
176
187
  }
177
188
 
178
189
  static VALUE
179
- rbglib_m_path_get_basename(VALUE self, VALUE fname)
190
+ rg_m_path_get_basename(G_GNUC_UNUSED VALUE self, VALUE fname)
180
191
  {
181
192
  return CSTR2RVAL(g_path_get_basename(RVAL2CSTR(fname)));
182
193
  }
183
194
 
184
195
  static VALUE
185
- rbglib_m_path_get_dirname(VALUE self, VALUE fname)
196
+ rg_m_path_get_dirname(G_GNUC_UNUSED VALUE self, VALUE fname)
186
197
  {
187
198
  return CSTR2RVAL(g_path_get_dirname(RVAL2CSTR(fname)));
188
199
  }
@@ -200,7 +211,7 @@ gchar* g_build_pathv (const gchar *separator,
200
211
  */
201
212
 
202
213
  static VALUE
203
- rbglib_m_find_program_in_path(VALUE self, VALUE program)
214
+ rg_m_find_program_in_path(G_GNUC_UNUSED VALUE self, VALUE program)
204
215
  {
205
216
  gchar* path = g_find_program_in_path(RVAL2CSTR(program));
206
217
  VALUE ret = CSTR2RVAL(path);
@@ -209,25 +220,25 @@ rbglib_m_find_program_in_path(VALUE self, VALUE program)
209
220
  }
210
221
 
211
222
  static VALUE
212
- rbglib_m_bit_nth_lsf(VALUE self, VALUE mask, VALUE nth_bit)
223
+ rg_m_bit_nth_lsf(G_GNUC_UNUSED VALUE self, VALUE mask, VALUE nth_bit)
213
224
  {
214
225
  return INT2NUM(g_bit_nth_lsf(NUM2ULONG(mask), NUM2INT(nth_bit)));
215
226
  }
216
227
 
217
228
  static VALUE
218
- rbglib_m_bit_nth_msf(VALUE self, VALUE mask, VALUE nth_bit)
229
+ rg_m_bit_nth_msf(G_GNUC_UNUSED VALUE self, VALUE mask, VALUE nth_bit)
219
230
  {
220
231
  return INT2NUM(g_bit_nth_msf(NUM2ULONG(mask), NUM2INT(nth_bit)));
221
232
  }
222
233
 
223
234
  static VALUE
224
- rbglib_m_bit_storage(VALUE self, VALUE number)
235
+ rg_m_bit_storage(G_GNUC_UNUSED VALUE self, VALUE number)
225
236
  {
226
237
  return UINT2NUM(g_bit_storage(NUM2ULONG(number)));
227
238
  }
228
239
 
229
240
  static VALUE
230
- rbglib_m_spaced_primes_closest(VALUE self, VALUE num)
241
+ rg_m_spaced_primes_closest(G_GNUC_UNUSED VALUE self, VALUE num)
231
242
  {
232
243
  return UINT2NUM(g_spaced_primes_closest(NUM2UINT(num)));
233
244
  }
@@ -238,7 +249,7 @@ void g_atexit (GVoidFunc func);
238
249
  */
239
250
 
240
251
  static VALUE
241
- rbglib_m_parse_debug_string(VALUE self, VALUE string, VALUE keys)
252
+ rg_m_parse_debug_string(G_GNUC_UNUSED VALUE self, VALUE string, VALUE keys)
242
253
  {
243
254
  gint i, nkeys;
244
255
  VALUE ary;
@@ -252,7 +263,7 @@ rbglib_m_parse_debug_string(VALUE self, VALUE string, VALUE keys)
252
263
  gkeys[i].key = RVAL2CSTR(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]);
253
264
  gkeys[i].value = NUM2UINT(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
254
265
  }
255
-
266
+
256
267
  return UINT2NUM(g_parse_debug_string(RVAL2CSTR(string), gkeys, nkeys));
257
268
  }
258
269
 
@@ -271,7 +282,7 @@ void g_nullify_pointer (gpointer *nullify_location);
271
282
  */
272
283
 
273
284
  static VALUE
274
- rbglib_m_check_version(VALUE self, VALUE major, VALUE minor, VALUE micro)
285
+ rg_m_check_version_p(G_GNUC_UNUSED VALUE self, VALUE major, VALUE minor, VALUE micro)
275
286
  {
276
287
  return CBOOL2RVAL(glib_major_version > NUM2UINT(major) ||
277
288
  (glib_major_version == NUM2UINT(major) &&
@@ -282,65 +293,58 @@ rbglib_m_check_version(VALUE self, VALUE major, VALUE minor, VALUE micro)
282
293
  }
283
294
 
284
295
  void
285
- Init_glib_utils()
296
+ Init_glib_utils(void)
286
297
  {
287
298
  /* glib/gutils.h */
288
299
  #if GLIB_CHECK_VERSION(2, 14, 0)
289
- G_DEF_CLASS(G_TYPE_USER_DIRECTORY, "UserDirectory", mGLib);
290
- G_DEF_CONSTANTS(mGLib, G_TYPE_USER_DIRECTORY, "G_");
300
+ G_DEF_CLASS(G_TYPE_USER_DIRECTORY, "UserDirectory", RG_TARGET_NAMESPACE);
301
+ G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, G_TYPE_USER_DIRECTORY, "G_");
291
302
  #endif
292
303
 
293
304
  #if GLIB_CHECK_VERSION(2,2,0)
294
- rb_define_module_function(mGLib, "application_name", rbglib_m_application_name, 0);
295
- rb_define_module_function(mGLib, "set_application_name", rbglib_m_set_application_name, 1);
305
+ RG_DEF_MODFUNC(application_name, 0);
306
+ RG_DEF_MODFUNC(set_application_name, 1);
296
307
  #endif
297
- rb_define_module_function(mGLib, "prgname", rbglib_m_prgname, 0);
298
- rb_define_module_function(mGLib, "set_prgname", rbglib_m_set_prgname, 1);
299
- rb_define_module_function(mGLib, "getenv", rbglib_m_env, 1);
308
+ RG_DEF_MODFUNC(prgname, 0);
309
+ RG_DEF_MODFUNC(set_prgname, 1);
310
+ RG_DEF_MODFUNC(getenv, 1);
300
311
  #if GLIB_CHECK_VERSION(2,4,0)
301
- rb_define_module_function(mGLib, "setenv", rbglib_m_setenv, 2);
302
- rb_define_module_function(mGLib, "unsetenv", rbglib_m_unsetenv, 1);
312
+ RG_DEF_MODFUNC(setenv, 2);
313
+ RG_DEF_MODFUNC(unsetenv, 1);
303
314
  #endif
304
315
  #if GLIB_CHECK_VERSION(2,8,0)
305
- #if HAVE_G_LISTENV
306
- rb_define_module_function(mGLib, "listenv", rbglib_m_listenv, 0);
316
+ #ifdef HAVE_G_LISTENV
317
+ RG_DEF_MODFUNC(listenv, 0);
307
318
  #endif
308
- rb_define_module_function(mGLib, "host_name", rbglib_m_host_name, 0);
319
+ RG_DEF_MODFUNC(host_name, 0);
309
320
  #endif
310
- rb_define_module_function(mGLib, "user_name", rbglib_m_user_name, 0);
311
- rb_define_module_function(mGLib, "real_name", rbglib_m_real_name, 0);
321
+ RG_DEF_MODFUNC(user_name, 0);
322
+ RG_DEF_MODFUNC(real_name, 0);
312
323
 
313
324
  #if GLIB_CHECK_VERSION(2, 6, 0)
314
- rb_define_module_function(mGLib, "user_cache_dir",
315
- rbglib_m_user_cache_dir, 0);
316
- rb_define_module_function(mGLib, "user_data_dir",
317
- rbglib_m_user_data_dir, 0);
318
- rb_define_module_function(mGLib, "user_config_dir",
319
- rbglib_m_user_config_dir, 0);
320
- rb_define_module_function(mGLib, "system_data_dirs",
321
- rbglib_m_system_data_dirs, 0);
322
- rb_define_module_function(mGLib, "system_config_dirs",
323
- rbglib_m_system_config_dirs, 0);
325
+ RG_DEF_MODFUNC(user_cache_dir, 0);
326
+ RG_DEF_MODFUNC(user_data_dir, 0);
327
+ RG_DEF_MODFUNC(user_config_dir, 0);
328
+ RG_DEF_MODFUNC(system_data_dirs, 0);
329
+ RG_DEF_MODFUNC(system_config_dirs, 0);
324
330
  #endif
325
331
  #if GLIB_CHECK_VERSION(2, 14, 0)
326
- rb_define_module_function(mGLib, "get_user_special_dir",
327
- rbglib_m_get_user_special_dir, 1);
332
+ RG_DEF_MODFUNC(get_user_special_dir, 1);
328
333
  #endif
329
- rb_define_module_function(mGLib, "home_dir", rbglib_m_home_dir, 0);
330
- rb_define_module_function(mGLib, "tmp_dir", rbglib_m_tmp_dir, 0);
331
- rb_define_module_function(mGLib, "current_dir", rbglib_m_current_dir, 0);
332
-
333
- rb_define_module_function(mGLib, "path_is_absolute?", rbglib_m_path_is_absolute, 1);
334
- rb_define_module_function(mGLib, "path_skip_root", rbglib_m_path_skip_root, 1);
335
- rb_define_module_function(mGLib, "path_get_basename", rbglib_m_path_get_basename, 1);
336
- rb_define_module_function(mGLib, "path_get_dirname", rbglib_m_path_get_dirname, 1);
337
- rb_define_module_function(mGLib, "find_program_in_path", rbglib_m_find_program_in_path, 1);
338
- rb_define_module_function(mGLib, "bit_nth_lsf", rbglib_m_bit_nth_lsf, 2);
339
- rb_define_module_function(mGLib, "bit_nth_msf", rbglib_m_bit_nth_msf, 2);
340
- rb_define_module_function(mGLib, "bit_storage", rbglib_m_bit_storage, 1);
341
- rb_define_module_function(mGLib, "spaced_primes_closest", rbglib_m_spaced_primes_closest, 1);
342
- rb_define_module_function(mGLib, "parse_debug_string", rbglib_m_parse_debug_string, 2);
343
- rb_define_module_function(mGLib, "check_version?", rbglib_m_check_version, 3);
334
+ RG_DEF_MODFUNC(home_dir, 0);
335
+ RG_DEF_MODFUNC(tmp_dir, 0);
336
+ RG_DEF_MODFUNC(current_dir, 0);
337
+
338
+ RG_DEF_MODFUNC_P(path_is_absolute, 1);
339
+ RG_DEF_MODFUNC(path_skip_root, 1);
340
+ RG_DEF_MODFUNC(path_get_basename, 1);
341
+ RG_DEF_MODFUNC(path_get_dirname, 1);
342
+ RG_DEF_MODFUNC(find_program_in_path, 1);
343
+ RG_DEF_MODFUNC(bit_nth_lsf, 2);
344
+ RG_DEF_MODFUNC(bit_nth_msf, 2);
345
+ RG_DEF_MODFUNC(bit_storage, 1);
346
+ RG_DEF_MODFUNC(spaced_primes_closest, 1);
347
+ RG_DEF_MODFUNC(parse_debug_string, 2);
348
+ RG_DEF_MODFUNC_P(check_version, 3);
344
349
 
345
350
  }
346
-