glib2 0.90.2 → 0.90.3
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +49 -0
- data/Rakefile +1 -0
- data/ext/glib2/depend +4 -2
- data/ext/glib2/extconf.rb +0 -1
- data/ext/glib2/glib2.def +9 -0
- data/ext/glib2/rbglib.c +129 -2
- data/ext/glib2/rbglib.h +13 -4
- data/ext/glib2/rbglib_bookmarkfile.c +8 -13
- data/ext/glib2/rbglib_keyfile.c +6 -7
- data/ext/glib2/rbglib_shell.c +2 -2
- data/ext/glib2/rbglib_spawn.c +1 -1
- data/ext/glib2/rbglib_utils.c +1 -1
- data/ext/glib2/rbglib_win32.c +5 -5
- data/ext/glib2/rbgobj_paramspecs.c +56 -58
- data/ext/glib2/rbgobj_value.c +2 -5
- data/ext/glib2/rbgutil.c +1 -1
- data/lib/mkmf-gnome2.rb +1 -0
- metadata +19 -6
data/ChangeLog
CHANGED
@@ -1,3 +1,52 @@
|
|
1
|
+
2010-10-23 Kouhei Sutou <kou@cozmixng.org>
|
2
|
+
|
3
|
+
* ext/glib2/glib2.def: add missing exported symbols.
|
4
|
+
|
5
|
+
* lib/mkmf-gnome2.rb: ignore nonexistent directory.
|
6
|
+
|
7
|
+
* ext/glib2/rbglib.c, ext/glib2/rbglib.h:
|
8
|
+
fix alived string may be GCed in RVAL2CSTR and
|
9
|
+
RVAL2CSTR_ACCEPT_NIL problem.
|
10
|
+
Suggested by Neil Roberts. Thanks!!!
|
11
|
+
|
12
|
+
2010-10-21 Kouhei Sutou <kou@cozmixng.org>
|
13
|
+
|
14
|
+
* ext/glib2/rbgobj_paramspecs.c: add missing type declarations.
|
15
|
+
Reported by Nobuyoshi Nakada. Thanks!!!
|
16
|
+
|
17
|
+
2010-10-08 Guillaume Cottenceau
|
18
|
+
|
19
|
+
* fix some uses of rb_str_new* and StringValuePtr to use
|
20
|
+
encoding-aware Strings
|
21
|
+
|
22
|
+
2010-10-08 Guillaume Cottenceau
|
23
|
+
|
24
|
+
* RVAL2CSTR2 is deprecated, replace with RVAL2CSTR_ACCEPT_NIL
|
25
|
+
|
26
|
+
* CSTR2RVAL2 is deprecated, replace with CSTR2RVAL_FREE
|
27
|
+
|
28
|
+
2010-10-07 Guillaume Cottenceau
|
29
|
+
|
30
|
+
* ext/glib2/rbglib.c, ext/glib2/rbglib.h, ext/glib2/glib2.def,
|
31
|
+
ext/glib2/rbglib_bookmarkfile.c: have RVAL2CSTRFILENAME,
|
32
|
+
CSTRFILENAME2RVAL_FREE and CSTRFILENAMEARRAY2RVAL_FREE, to handle
|
33
|
+
filename String to/from rg2 manipulations, in glib2 to use them in
|
34
|
+
any rg2 submodules
|
35
|
+
|
36
|
+
2010-10-06 Guillaume Cottenceau
|
37
|
+
|
38
|
+
* ext/glib2/rbglib.c, ext/glib2/extconf.rb: use
|
39
|
+
HAVE_RUBY_ENCODING_H, not HAVE_RB_STR_ENCODE
|
40
|
+
|
41
|
+
2010-09-30 Guillaume Cottenceau
|
42
|
+
|
43
|
+
* ext/glib2/rbglib.c, ext/glib2/rbgobj_value.c,
|
44
|
+
ext/glib2/rbglib.h, ext/glib2/glib2.def: improve CSTR2RVAL,
|
45
|
+
RVAL2CSTR, gvalue2rvalue, and rvalue2gvalue, to use UTF-8 strings
|
46
|
+
when Ruby supports String encoding (Ruby 1.9) - in particular this
|
47
|
+
should allow retrieving usable Strings from rg2 (Strings with a
|
48
|
+
set encoding)
|
49
|
+
|
1
50
|
2010-09-26 Kouhei Sutou <kou@cozmixng.org>
|
2
51
|
|
3
52
|
* ext/glib2/rbglib.h: 0.90.2 -> 0.90.3.
|
data/Rakefile
CHANGED
@@ -35,6 +35,7 @@ spec = Gem::Specification.new do |s|
|
|
35
35
|
s.platform = Gem::Platform::RUBY
|
36
36
|
s.extensions = FileList["ext/#{package_name}/extconf.rb"]
|
37
37
|
s.require_paths = ["lib"]
|
38
|
+
s.add_development_dependency("pkg-config", ">= 0")
|
38
39
|
s.files = FileList["ChangeLog", "README", "Rakefile", "extconf.rb",
|
39
40
|
"lib/**/*.rb", "{ext,sample,test,test-unit}/**/*"]
|
40
41
|
end
|
data/ext/glib2/depend
CHANGED
@@ -6,5 +6,7 @@ install-so:
|
|
6
6
|
$(INSTALL_DATA) glib-enum-types.h $(RUBYARCHDIR)
|
7
7
|
|
8
8
|
install:
|
9
|
-
$(
|
10
|
-
|
9
|
+
if test -n "$(pkgconfigdir)"; then \
|
10
|
+
$(MAKEDIRS) $(pkgconfigdir); \
|
11
|
+
$(INSTALL_DATA) ruby-glib2.pc $(pkgconfigdir); \
|
12
|
+
fi
|
data/ext/glib2/extconf.rb
CHANGED
@@ -37,7 +37,6 @@ have_func("rb_sourceline", ruby_header)
|
|
37
37
|
have_func("ruby_set_current_source", ruby_header)
|
38
38
|
have_func("rb_thread_blocking_region", ruby_header)
|
39
39
|
have_func("ruby_native_thread_p", ruby_header)
|
40
|
-
have_func("rb_str_encode", ruby_header)
|
41
40
|
|
42
41
|
have_var("curr_thread", [ruby_header, "node.h"])
|
43
42
|
have_var("rb_curr_thread", [ruby_header, "node.h"])
|
data/ext/glib2/glib2.def
CHANGED
@@ -56,9 +56,13 @@ EXPORTS
|
|
56
56
|
g_value_set_ruby_value
|
57
57
|
g_key_file_get_type
|
58
58
|
rbg_rval_inspect
|
59
|
+
rbg_rval2cstr
|
59
60
|
rbg_rval2cstr_accept_nil
|
60
61
|
rbg_cstr2rval
|
61
62
|
rbg_cstr2rval_with_free
|
63
|
+
rbg_filename_to_ruby_free
|
64
|
+
rbg_filename_from_ruby
|
65
|
+
rbg_filename_gslist_to_array_free
|
62
66
|
rbg_string_value_ptr
|
63
67
|
rbgutil_id_module_eval DATA
|
64
68
|
rbgutil_def_setters
|
@@ -85,5 +89,10 @@ EXPORTS
|
|
85
89
|
rbgobj_fund_define_fundamental
|
86
90
|
rbgobj_gc_mark_gvalue
|
87
91
|
rbgobj_gc_mark_instance
|
92
|
+
rbglib_num_to_uint64
|
93
|
+
rbglib_uint64_to_num
|
94
|
+
rbglib_num_to_int64
|
95
|
+
rbglib_int64_to_num
|
88
96
|
|
89
97
|
g_connect_flags_get_type
|
98
|
+
g_poll_fd_get_type
|
data/ext/glib2/rbglib.c
CHANGED
@@ -43,6 +43,18 @@ extern void Init_glib_unicode();
|
|
43
43
|
extern void Init_glib_keyfile();
|
44
44
|
extern void Init_glib_bookmark_file();
|
45
45
|
|
46
|
+
gchar *
|
47
|
+
rbg_rval2cstr(VALUE *str)
|
48
|
+
{
|
49
|
+
StringValue(*str);
|
50
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
51
|
+
if (rb_enc_get(*str) != rb_utf8_encoding()) {
|
52
|
+
str = rb_str_export_to_enc(*str, rb_utf8_encoding());
|
53
|
+
}
|
54
|
+
#endif
|
55
|
+
return RSTRING_PTR(*str);
|
56
|
+
}
|
57
|
+
|
46
58
|
const gchar *
|
47
59
|
rbg_rval_inspect(VALUE object)
|
48
60
|
{
|
@@ -60,21 +72,29 @@ rbg_string_value_ptr(ptr)
|
|
60
72
|
}
|
61
73
|
|
62
74
|
gchar *
|
63
|
-
rbg_rval2cstr_accept_nil(VALUE str)
|
75
|
+
rbg_rval2cstr_accept_nil(VALUE *str)
|
64
76
|
{
|
65
|
-
return NIL_P(str) ? NULL :
|
77
|
+
return NIL_P(*str) ? NULL : RVAL2CSTR(*str);
|
66
78
|
}
|
67
79
|
|
68
80
|
VALUE
|
69
81
|
rbg_cstr2rval(const char* str)
|
70
82
|
{
|
83
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
84
|
+
return str ? rb_external_str_new_with_enc(str, strlen(str), rb_utf8_encoding()) : Qnil;
|
85
|
+
#else
|
71
86
|
return str ? rb_str_new2(str) : Qnil;
|
87
|
+
#endif
|
72
88
|
}
|
73
89
|
|
74
90
|
static VALUE
|
75
91
|
rbg_cstr2rval_with_free_body(VALUE str)
|
76
92
|
{
|
93
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
94
|
+
return rb_external_str_new_with_enc((gchar *)str, strlen((gchar *)str), rb_utf8_encoding());
|
95
|
+
#else
|
77
96
|
return rb_str_new2((gchar *)str);
|
97
|
+
#endif
|
78
98
|
}
|
79
99
|
|
80
100
|
static VALUE
|
@@ -92,6 +112,94 @@ rbg_cstr2rval_with_free(gchar *str)
|
|
92
112
|
rbg_cstr2rval_with_free_ensure, (VALUE)str) : Qnil;
|
93
113
|
}
|
94
114
|
|
115
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
116
|
+
static rb_encoding *filename_encoding_if_not_utf8;
|
117
|
+
#endif
|
118
|
+
|
119
|
+
VALUE
|
120
|
+
rbg_filename_to_ruby_free(gchar *filename)
|
121
|
+
{
|
122
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
123
|
+
gchar *filename_utf8;
|
124
|
+
GError *error = NULL;
|
125
|
+
gsize written;
|
126
|
+
VALUE rb_filename = Qnil;
|
127
|
+
|
128
|
+
if (filename == NULL)
|
129
|
+
return Qnil;
|
130
|
+
|
131
|
+
/* convert filename to UTF-8 if needed */
|
132
|
+
if (filename_encoding_if_not_utf8 != NULL) {
|
133
|
+
filename_utf8 = g_filename_to_utf8(filename, -1, NULL, &written, &error);
|
134
|
+
g_free(filename);
|
135
|
+
if (error != NULL)
|
136
|
+
RAISE_GERROR(error);
|
137
|
+
} else {
|
138
|
+
filename_utf8 = filename;
|
139
|
+
}
|
140
|
+
|
141
|
+
/* create Ruby String in UTF-8 */
|
142
|
+
rb_filename = rb_external_str_new_with_enc(filename_utf8,
|
143
|
+
strlen(filename_utf8),
|
144
|
+
rb_utf8_encoding());
|
145
|
+
g_free(filename_utf8);
|
146
|
+
|
147
|
+
/* if needed, change encoding of Ruby String to filename encoding, so that
|
148
|
+
upcoming File operations will work properly */
|
149
|
+
if (filename_encoding_if_not_utf8 != NULL) {
|
150
|
+
return rb_str_export_to_enc(rb_filename, filename_encoding_if_not_utf8);
|
151
|
+
} else {
|
152
|
+
return rb_filename;
|
153
|
+
}
|
154
|
+
|
155
|
+
#else
|
156
|
+
return CSTR2RVAL_FREE(filename);
|
157
|
+
#endif
|
158
|
+
}
|
159
|
+
|
160
|
+
gchar *
|
161
|
+
rbg_filename_from_ruby(VALUE filename)
|
162
|
+
{
|
163
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
164
|
+
GError *error = NULL;
|
165
|
+
gchar *retval;
|
166
|
+
gsize written;
|
167
|
+
|
168
|
+
/* if needed, change encoding of Ruby String to UTF-8 */
|
169
|
+
StringValue(filename);
|
170
|
+
if (rb_enc_get(filename) != rb_utf8_encoding()) {
|
171
|
+
filename = rb_str_export_to_enc(filename, rb_utf8_encoding());
|
172
|
+
}
|
173
|
+
|
174
|
+
/* convert it to filename encoding if needed */
|
175
|
+
if (filename_encoding_if_not_utf8 != NULL) {
|
176
|
+
retval = g_filename_from_utf8(RSTRING_PTR(filename), -1, NULL, &written, &error);
|
177
|
+
if (error != NULL)
|
178
|
+
RAISE_GERROR(error);
|
179
|
+
} else {
|
180
|
+
retval = RSTRING_PTR(filename);
|
181
|
+
}
|
182
|
+
|
183
|
+
return retval;
|
184
|
+
|
185
|
+
#else
|
186
|
+
return RVAL2CSTR(filename);
|
187
|
+
#endif
|
188
|
+
}
|
189
|
+
|
190
|
+
VALUE
|
191
|
+
rbg_filename_gslist_to_array_free(GSList *list)
|
192
|
+
{
|
193
|
+
GSList *l;
|
194
|
+
VALUE ary = rb_ary_new();
|
195
|
+
for (l = list; l != NULL; l = g_slist_next(l)) {
|
196
|
+
rb_ary_push(ary, rbg_filename_to_ruby_free(l->data));
|
197
|
+
}
|
198
|
+
g_slist_free(list);
|
199
|
+
return ary;
|
200
|
+
}
|
201
|
+
|
202
|
+
|
95
203
|
#if 0
|
96
204
|
/*
|
97
205
|
2004-04-15 Commented out by Masao.
|
@@ -175,6 +283,10 @@ rbg_s_os_unix(self)
|
|
175
283
|
void
|
176
284
|
Init_glib2()
|
177
285
|
{
|
286
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
287
|
+
const gchar **filename_charsets;
|
288
|
+
#endif
|
289
|
+
|
178
290
|
id_inspect = rb_intern("inspect");
|
179
291
|
|
180
292
|
mGLib = rb_define_module("GLib");
|
@@ -254,6 +366,21 @@ Init_glib2()
|
|
254
366
|
rb_define_const(mGLib, "DIR_SEPARATOR", CSTR2RVAL(G_DIR_SEPARATOR_S));
|
255
367
|
rb_define_const(mGLib, "SEARCHPATH_SEPARATOR", CSTR2RVAL(G_SEARCHPATH_SEPARATOR_S));
|
256
368
|
|
369
|
+
/* discover and store glib filename encoding */
|
370
|
+
#ifdef HAVE_RUBY_ENCODING_H
|
371
|
+
if (g_get_filename_charsets(&filename_charsets)
|
372
|
+
|| filename_charsets == NULL
|
373
|
+
|| filename_charsets[0] == NULL
|
374
|
+
|| !strcmp(filename_charsets[0], "UTF-8")
|
375
|
+
|| rb_enc_find(filename_charsets[0]) == rb_enc_find("ASCII-8BIT")) {
|
376
|
+
/* set to NULL, mean do not perform transcoding, either filename
|
377
|
+
encoding is unknown, UTF-8, or unsupported */
|
378
|
+
filename_encoding_if_not_utf8 = NULL;
|
379
|
+
} else {
|
380
|
+
filename_encoding_if_not_utf8 = rb_enc_find(filename_charsets[0]);
|
381
|
+
}
|
382
|
+
#endif
|
383
|
+
|
257
384
|
/* Don't implement them.
|
258
385
|
#define G_DIR_SEPARATOR_S
|
259
386
|
#define G_IS_DIR_SEPARATOR (c)
|
data/ext/glib2/rbglib.h
CHANGED
@@ -23,7 +23,7 @@ extern "C" {
|
|
23
23
|
|
24
24
|
#define RBGLIB_MAJOR_VERSION 0
|
25
25
|
#define RBGLIB_MINOR_VERSION 90
|
26
|
-
#define RBGLIB_MICRO_VERSION
|
26
|
+
#define RBGLIB_MICRO_VERSION 3
|
27
27
|
|
28
28
|
#ifndef RSTRING_PTR
|
29
29
|
# define RSTRING_PTR(s) (RSTRING(s)->ptr)
|
@@ -45,13 +45,17 @@ typedef int GPid;
|
|
45
45
|
|
46
46
|
#define RBG_INSPECT(object) (rbg_rval_inspect(object))
|
47
47
|
|
48
|
-
#define RVAL2CSTR(v) (
|
49
|
-
#define RVAL2CSTR_ACCEPT_NIL(v) (rbg_rval2cstr_accept_nil(v))
|
48
|
+
#define RVAL2CSTR(v) (rbg_rval2cstr(&v))
|
49
|
+
#define RVAL2CSTR_ACCEPT_NIL(v) (rbg_rval2cstr_accept_nil(&v))
|
50
50
|
#define RVAL2CSTR2(v) (RVAL2CSTR_ACCEPT_NIL(v))
|
51
51
|
#define CSTR2RVAL(s) (rbg_cstr2rval(s))
|
52
52
|
#define CSTR2RVAL_FREE(s) (rbg_cstr2rval_with_free(s))
|
53
53
|
#define CSTR2RVAL2(s) (CSTR2RVAL_FREE(s))
|
54
54
|
|
55
|
+
#define RVAL2CSTRFILENAME(v) (rbg_filename_from_ruby(v))
|
56
|
+
#define CSTRFILENAME2RVAL_FREE(s) (rbg_filename_to_ruby_free(s))
|
57
|
+
#define CSTRFILENAMEARRAY2RVAL_FREE(s) (rbg_filename_gslist_to_array_free(s))
|
58
|
+
|
55
59
|
#define CBOOL2RVAL(b) ((b) ? Qtrue : Qfalse)
|
56
60
|
#define RVAL2CBOOL(b) (RTEST(b))
|
57
61
|
#define GERROR2RVAL(error) (rbgerr_gerror2exception(error))
|
@@ -76,10 +80,15 @@ RUBY_GLIB2_VAR VALUE mGLib;
|
|
76
80
|
extern const gchar *rbg_rval_inspect(VALUE object);
|
77
81
|
|
78
82
|
extern gchar* rbg_string_value_ptr(volatile VALUE* ptr); /* no longer used */
|
79
|
-
extern gchar *
|
83
|
+
extern gchar *rbg_rval2cstr(VALUE *str);
|
84
|
+
extern gchar *rbg_rval2cstr_accept_nil(VALUE *str);
|
80
85
|
extern VALUE rbg_cstr2rval(const char* str);
|
81
86
|
extern VALUE rbg_cstr2rval_with_free(gchar* str);
|
82
87
|
|
88
|
+
extern VALUE rbg_filename_to_ruby_free(gchar *filename);
|
89
|
+
extern gchar *rbg_filename_from_ruby(VALUE filename);
|
90
|
+
extern VALUE rbg_filename_gslist_to_array_free(GSList *list);
|
91
|
+
|
83
92
|
/* rbgerror.h */
|
84
93
|
extern VALUE rbgerr_gerror2exception(GError *error);
|
85
94
|
extern VALUE rbgerr_define_gerror(GQuark domain, const gchar* name, VALUE module, VALUE parent, VALUE gtype);
|
@@ -56,7 +56,7 @@ bf_load_from_file(self, filename)
|
|
56
56
|
{
|
57
57
|
GError* error = NULL;
|
58
58
|
gboolean ret = g_bookmark_file_load_from_file(_SELF(self),
|
59
|
-
(
|
59
|
+
RVAL2CSTRFILENAME(filename),
|
60
60
|
&error);
|
61
61
|
if (!ret) RAISE_GERROR(error);
|
62
62
|
return self;
|
@@ -98,17 +98,12 @@ static VALUE
|
|
98
98
|
bf_to_data(self)
|
99
99
|
VALUE self;
|
100
100
|
{
|
101
|
-
VALUE ret;
|
102
|
-
gsize len;
|
103
101
|
GError* error = NULL;
|
104
|
-
gchar* data = g_bookmark_file_to_data(_SELF(self),
|
102
|
+
gchar* data = g_bookmark_file_to_data(_SELF(self), NULL, &error);
|
105
103
|
|
106
104
|
if (error) RAISE_GERROR(error);
|
107
105
|
|
108
|
-
|
109
|
-
g_free(data);
|
110
|
-
|
111
|
-
return ret;
|
106
|
+
return CSTR2RVAL_FREE(data);
|
112
107
|
}
|
113
108
|
|
114
109
|
static VALUE
|
@@ -117,7 +112,7 @@ bf_to_file(self, filename)
|
|
117
112
|
{
|
118
113
|
GError* error = NULL;
|
119
114
|
gboolean ret = g_bookmark_file_to_file(_SELF(self),
|
120
|
-
(
|
115
|
+
RVAL2CSTRFILENAME(filename),
|
121
116
|
&error);
|
122
117
|
if (!ret) RAISE_GERROR(error);
|
123
118
|
return self;
|
@@ -187,7 +182,7 @@ bf_get_title(self, uri)
|
|
187
182
|
(const gchar *)RVAL2CSTR(uri),
|
188
183
|
&error);
|
189
184
|
if (error) RAISE_GERROR(error);
|
190
|
-
return
|
185
|
+
return CSTR2RVAL_FREE(ret);
|
191
186
|
}
|
192
187
|
|
193
188
|
static VALUE
|
@@ -199,7 +194,7 @@ bf_get_description(self, uri)
|
|
199
194
|
(const gchar *)RVAL2CSTR(uri),
|
200
195
|
&error);
|
201
196
|
if (error) RAISE_GERROR(error);
|
202
|
-
return
|
197
|
+
return CSTR2RVAL_FREE(ret);
|
203
198
|
}
|
204
199
|
|
205
200
|
static VALUE
|
@@ -211,7 +206,7 @@ bf_get_mime_type(self, uri)
|
|
211
206
|
(const gchar *)RVAL2CSTR(uri),
|
212
207
|
&error);
|
213
208
|
if (error) RAISE_GERROR(error);
|
214
|
-
return
|
209
|
+
return CSTR2RVAL_FREE(ret);
|
215
210
|
}
|
216
211
|
|
217
212
|
static VALUE
|
@@ -241,7 +236,7 @@ bf_get_icon(self, uri)
|
|
241
236
|
if (error) RAISE_GERROR(error);
|
242
237
|
return Qnil;
|
243
238
|
}
|
244
|
-
return rb_assoc_new(
|
239
|
+
return rb_assoc_new(CSTR2RVAL_FREE(href), CSTR2RVAL_FREE(mime_type));
|
245
240
|
}
|
246
241
|
|
247
242
|
static VALUE
|
data/ext/glib2/rbglib_keyfile.c
CHANGED
@@ -192,13 +192,12 @@ static VALUE
|
|
192
192
|
keyfile_to_data(self)
|
193
193
|
VALUE self;
|
194
194
|
{
|
195
|
-
gsize length;
|
196
195
|
GError* error = NULL;
|
197
|
-
gchar* data = g_key_file_to_data(_SELF(self),
|
196
|
+
gchar* data = g_key_file_to_data(_SELF(self), NULL, &error);
|
198
197
|
|
199
198
|
if (error) RAISE_GERROR(error);
|
200
199
|
|
201
|
-
return
|
200
|
+
return CSTR2RVAL_FREE(data);
|
202
201
|
}
|
203
202
|
|
204
203
|
static VALUE
|
@@ -284,7 +283,7 @@ keyfile_get_value(self, group_name, key)
|
|
284
283
|
|
285
284
|
if (error) RAISE_GERROR(error);
|
286
285
|
|
287
|
-
return
|
286
|
+
return CSTR2RVAL_FREE(ret);
|
288
287
|
}
|
289
288
|
|
290
289
|
static VALUE
|
@@ -299,7 +298,7 @@ keyfile_get_string(self, group_name, key)
|
|
299
298
|
|
300
299
|
if (error) RAISE_GERROR(error);
|
301
300
|
|
302
|
-
return
|
301
|
+
return CSTR2RVAL_FREE(ret);
|
303
302
|
}
|
304
303
|
|
305
304
|
static VALUE
|
@@ -322,7 +321,7 @@ keyfile_get_locale_string(argc, argv, self)
|
|
322
321
|
|
323
322
|
if (error) RAISE_GERROR(error);
|
324
323
|
|
325
|
-
return
|
324
|
+
return CSTR2RVAL_FREE(ret);
|
326
325
|
}
|
327
326
|
|
328
327
|
static VALUE
|
@@ -508,7 +507,7 @@ keyfile_get_comment(self, group_name, key)
|
|
508
507
|
|
509
508
|
if (error) RAISE_GERROR(error);
|
510
509
|
|
511
|
-
return
|
510
|
+
return CSTR2RVAL_FREE(ret);
|
512
511
|
}
|
513
512
|
|
514
513
|
static VALUE
|
data/ext/glib2/rbglib_shell.c
CHANGED
@@ -37,7 +37,7 @@ static VALUE
|
|
37
37
|
shell_quote(self, unquoted_string)
|
38
38
|
VALUE self, unquoted_string;
|
39
39
|
{
|
40
|
-
return
|
40
|
+
return CSTR2RVAL_FREE(g_shell_quote((const gchar*)RVAL2CSTR(unquoted_string)));
|
41
41
|
}
|
42
42
|
|
43
43
|
static VALUE
|
@@ -49,7 +49,7 @@ shell_unquote(self, quoted_string)
|
|
49
49
|
|
50
50
|
if (! str) RAISE_GERROR(err);
|
51
51
|
|
52
|
-
return
|
52
|
+
return CSTR2RVAL_FREE(str);
|
53
53
|
}
|
54
54
|
|
55
55
|
void
|
data/ext/glib2/rbglib_spawn.c
CHANGED
@@ -241,7 +241,7 @@ rbglib_m_spawn_command_line_sync(self, str)
|
|
241
241
|
VALUE std_out, std_err;
|
242
242
|
gboolean ret;
|
243
243
|
|
244
|
-
command_line =
|
244
|
+
command_line = RVAL2CSTR(str);
|
245
245
|
ret = g_spawn_command_line_sync(command_line,
|
246
246
|
&standard_output,
|
247
247
|
&standard_error,
|
data/ext/glib2/rbglib_utils.c
CHANGED
data/ext/glib2/rbglib_win32.c
CHANGED
@@ -19,14 +19,14 @@ static VALUE
|
|
19
19
|
rbglib_m_win32_error_message(self, error)
|
20
20
|
VALUE self, error;
|
21
21
|
{
|
22
|
-
return
|
22
|
+
return CSTR2RVAL_FREE(g_win32_error_message(NUM2INT(error)));
|
23
23
|
}
|
24
24
|
|
25
25
|
static VALUE
|
26
26
|
rbglib_m_win32_locale(self)
|
27
27
|
VALUE self;
|
28
28
|
{
|
29
|
-
return
|
29
|
+
return CSTR2RVAL_FREE(g_win32_getlocale());
|
30
30
|
}
|
31
31
|
|
32
32
|
static VALUE
|
@@ -41,7 +41,7 @@ static VALUE
|
|
41
41
|
rbglib_m_win32_get_package_installation_directory(self, package, dll_name)
|
42
42
|
VALUE self, package, dll_name;
|
43
43
|
{
|
44
|
-
return
|
44
|
+
return CSTR2RVAL_FREE(g_win32_get_package_installation_directory(RVAL2CSTR(package),
|
45
45
|
RVAL2CSTR(dll_name)));
|
46
46
|
}
|
47
47
|
|
@@ -49,7 +49,7 @@ static VALUE
|
|
49
49
|
rbglib_m_get_package_installation_subdirectory(self, package, dll_name, subdir)
|
50
50
|
VALUE self, package, dll_name, subdir;
|
51
51
|
{
|
52
|
-
return
|
52
|
+
return CSTR2RVAL_FREE(g_win32_get_package_installation_subdirectory(RVAL2CSTR(package),
|
53
53
|
RVAL2CSTR(dll_name),
|
54
54
|
RVAL2CSTR(subdir)));
|
55
55
|
}
|
@@ -68,7 +68,7 @@ static VALUE
|
|
68
68
|
rbglib_m_win32_locale_filename_from_utf8(self, utf8_filename)
|
69
69
|
VALUE self, utf8_filename;
|
70
70
|
{
|
71
|
-
return
|
71
|
+
return CSTR2RVAL_FREE(g_win32_locale_filename_from_utf8(RVAL2CSTR(utf8_filename)));
|
72
72
|
}
|
73
73
|
|
74
74
|
static VALUE
|
@@ -15,39 +15,40 @@
|
|
15
15
|
#include "rbgprivate.h"
|
16
16
|
|
17
17
|
#define DEF_NUMERIC_PSPEC_METHODS_FUNC(pspec_type, typename, from_ruby, to_ruby, pspec_cast) \
|
18
|
-
static VALUE
|
19
|
-
typename##_initialize(self, name, nick, blurb,
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
pspec
|
24
|
-
|
25
|
-
StringValuePtr(
|
26
|
-
|
27
|
-
from_ruby(
|
28
|
-
from_ruby(
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
\
|
34
|
-
|
35
|
-
VALUE
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
\
|
40
|
-
|
41
|
-
VALUE
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
\
|
46
|
-
|
47
|
-
VALUE
|
48
|
-
|
49
|
-
|
50
|
-
|
18
|
+
static VALUE \
|
19
|
+
typename##_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb, \
|
20
|
+
VALUE minimum, VALUE maximum, VALUE default_value, \
|
21
|
+
VALUE flags) \
|
22
|
+
{ \
|
23
|
+
GParamSpec* pspec; \
|
24
|
+
pspec = g_param_spec_##typename(StringValuePtr(name), \
|
25
|
+
StringValuePtr(nick), \
|
26
|
+
StringValuePtr(blurb), \
|
27
|
+
from_ruby(minimum), \
|
28
|
+
from_ruby(maximum), \
|
29
|
+
from_ruby(default_value), \
|
30
|
+
NUM2UINT(flags)); \
|
31
|
+
rbgobj_param_spec_initialize(self, pspec); \
|
32
|
+
return Qnil; \
|
33
|
+
} \
|
34
|
+
\
|
35
|
+
static VALUE \
|
36
|
+
typename##_minimum(VALUE self) \
|
37
|
+
{ \
|
38
|
+
return to_ruby(pspec_cast(RVAL2GOBJ(self))->minimum); \
|
39
|
+
} \
|
40
|
+
\
|
41
|
+
static VALUE \
|
42
|
+
typename##_maximum(VALUE self) \
|
43
|
+
{ \
|
44
|
+
return to_ruby(pspec_cast(RVAL2GOBJ(self))->maximum); \
|
45
|
+
} \
|
46
|
+
\
|
47
|
+
static VALUE \
|
48
|
+
typename##_range(VALUE self) \
|
49
|
+
{ \
|
50
|
+
pspec_type* pspec = pspec_cast(RVAL2GOBJ(self)); \
|
51
|
+
return rb_range_new(pspec->minimum, pspec->maximum, 0); \
|
51
52
|
}
|
52
53
|
|
53
54
|
DEF_NUMERIC_PSPEC_METHODS_FUNC(GParamSpecChar, char, NUM2INT, INT2FIX, G_PARAM_SPEC_CHAR)
|
@@ -62,23 +63,21 @@ DEF_NUMERIC_PSPEC_METHODS_FUNC(GParamSpecFloat, float, NUM2DBL, rb_float_new, G_
|
|
62
63
|
DEF_NUMERIC_PSPEC_METHODS_FUNC(GParamSpecDouble, double, NUM2DBL, rb_float_new, G_PARAM_SPEC_DOUBLE)
|
63
64
|
|
64
65
|
static VALUE
|
65
|
-
float_epsilon(self)
|
66
|
-
VALUE self;
|
66
|
+
float_epsilon(VALUE self)
|
67
67
|
{
|
68
68
|
return rb_float_new(G_PARAM_SPEC_FLOAT(RVAL2GOBJ(self))->epsilon);
|
69
69
|
}
|
70
70
|
|
71
71
|
static VALUE
|
72
|
-
double_epsilon(self)
|
73
|
-
VALUE self;
|
72
|
+
double_epsilon(VALUE self)
|
74
73
|
{
|
75
74
|
return rb_float_new(G_PARAM_SPEC_DOUBLE(RVAL2GOBJ(self))->epsilon);
|
76
75
|
}
|
77
76
|
|
78
77
|
|
79
78
|
static VALUE
|
80
|
-
boolean_initialize(self, name, nick, blurb,
|
81
|
-
|
79
|
+
boolean_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
80
|
+
VALUE default_value, VALUE flags)
|
82
81
|
{
|
83
82
|
GParamSpec* pspec;
|
84
83
|
pspec = g_param_spec_boolean(StringValuePtr(name),
|
@@ -91,8 +90,8 @@ boolean_initialize(self, name, nick, blurb, default_value, flags)
|
|
91
90
|
}
|
92
91
|
|
93
92
|
static VALUE
|
94
|
-
unichar_initialize(self, name, nick, blurb,
|
95
|
-
|
93
|
+
unichar_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
94
|
+
VALUE default_value, VALUE flags)
|
96
95
|
{
|
97
96
|
GParamSpec* pspec;
|
98
97
|
pspec = g_param_spec_unichar(StringValuePtr(name),
|
@@ -105,8 +104,8 @@ unichar_initialize(self, name, nick, blurb, default_value, flags)
|
|
105
104
|
}
|
106
105
|
|
107
106
|
static VALUE
|
108
|
-
enum_initialize(self, name, nick, blurb,
|
109
|
-
|
107
|
+
enum_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
108
|
+
VALUE enum_type, VALUE default_value, VALUE flags)
|
110
109
|
{
|
111
110
|
GParamSpec* pspec;
|
112
111
|
GType gtype = rbgobj_gtype_get(enum_type);
|
@@ -122,8 +121,8 @@ enum_initialize(self, name, nick, blurb, enum_type, default_value, flags)
|
|
122
121
|
}
|
123
122
|
|
124
123
|
static VALUE
|
125
|
-
flags_initialize(self, name, nick, blurb,
|
126
|
-
|
124
|
+
flags_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
125
|
+
VALUE flags_type, VALUE default_value, VALUE flags)
|
127
126
|
{
|
128
127
|
GParamSpec* pspec;
|
129
128
|
GType gtype = rbgobj_gtype_get(flags_type);
|
@@ -139,8 +138,8 @@ flags_initialize(self, name, nick, blurb, flags_type, default_value, flags)
|
|
139
138
|
}
|
140
139
|
|
141
140
|
static VALUE
|
142
|
-
string_initialize(self, name, nick, blurb,
|
143
|
-
|
141
|
+
string_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
142
|
+
VALUE default_value, VALUE flags)
|
144
143
|
{
|
145
144
|
GParamSpec* pspec;
|
146
145
|
pspec = g_param_spec_string(StringValuePtr(name),
|
@@ -153,8 +152,8 @@ string_initialize(self, name, nick, blurb, default_value, flags)
|
|
153
152
|
}
|
154
153
|
|
155
154
|
static VALUE
|
156
|
-
param_initialize(self, name, nick, blurb,
|
157
|
-
|
155
|
+
param_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
156
|
+
VALUE param_type, VALUE flags)
|
158
157
|
{
|
159
158
|
GParamSpec* pspec;
|
160
159
|
pspec = g_param_spec_param(StringValuePtr(name),
|
@@ -167,8 +166,8 @@ param_initialize(self, name, nick, blurb, param_type, flags)
|
|
167
166
|
}
|
168
167
|
|
169
168
|
static VALUE
|
170
|
-
boxed_initialize(self, name, nick, blurb,
|
171
|
-
|
169
|
+
boxed_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
170
|
+
VALUE boxed_type, VALUE flags)
|
172
171
|
{
|
173
172
|
GParamSpec* pspec;
|
174
173
|
pspec = g_param_spec_boxed(StringValuePtr(name),
|
@@ -181,8 +180,7 @@ boxed_initialize(self, name, nick, blurb, boxed_type, flags)
|
|
181
180
|
}
|
182
181
|
|
183
182
|
static VALUE
|
184
|
-
pointer_initialize(self, name, nick, blurb, flags)
|
185
|
-
VALUE self, name, nick, blurb, flags;
|
183
|
+
pointer_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb, VALUE flags)
|
186
184
|
{
|
187
185
|
GParamSpec* pspec;
|
188
186
|
pspec = g_param_spec_pointer(StringValuePtr(name),
|
@@ -194,8 +192,8 @@ pointer_initialize(self, name, nick, blurb, flags)
|
|
194
192
|
}
|
195
193
|
|
196
194
|
static VALUE
|
197
|
-
value_array_initialize(self, name, nick, blurb,
|
198
|
-
|
195
|
+
value_array_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
196
|
+
VALUE element_spec, VALUE flags)
|
199
197
|
{
|
200
198
|
GParamSpec* pspec;
|
201
199
|
pspec = g_param_spec_value_array(StringValuePtr(name),
|
@@ -208,8 +206,8 @@ value_array_initialize(self, name, nick, blurb, element_spec, flags)
|
|
208
206
|
}
|
209
207
|
|
210
208
|
static VALUE
|
211
|
-
object_initialize(self, name, nick, blurb,
|
212
|
-
|
209
|
+
object_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
|
210
|
+
VALUE object_type, VALUE flags)
|
213
211
|
{
|
214
212
|
GParamSpec* pspec;
|
215
213
|
pspec = g_param_spec_object(StringValuePtr(name),
|
@@ -222,7 +220,7 @@ object_initialize(self, name, nick, blurb, object_type, flags)
|
|
222
220
|
}
|
223
221
|
|
224
222
|
void
|
225
|
-
Init_gobject_gparamspecs()
|
223
|
+
Init_gobject_gparamspecs(void)
|
226
224
|
{
|
227
225
|
VALUE cParamSpec = GTYPE2CLASS(G_TYPE_PARAM);
|
228
226
|
VALUE c;
|
data/ext/glib2/rbgobj_value.c
CHANGED
@@ -72,10 +72,7 @@ rbgobj_gvalue_to_rvalue(const GValue* value)
|
|
72
72
|
case G_TYPE_DOUBLE:
|
73
73
|
return rb_float_new(g_value_get_double(value));
|
74
74
|
case G_TYPE_STRING:
|
75
|
-
|
76
|
-
const char* str = g_value_get_string(value);
|
77
|
-
return str ? rb_str_new2(str) : Qnil;
|
78
|
-
}
|
75
|
+
return CSTR2RVAL(g_value_get_string(value));
|
79
76
|
case G_TYPE_ENUM:
|
80
77
|
return rbgobj_make_enum(g_value_get_enum(value), type);
|
81
78
|
case G_TYPE_FLAGS:
|
@@ -249,7 +246,7 @@ rbgobj_rvalue_to_gvalue(VALUE val, GValue* result)
|
|
249
246
|
{
|
250
247
|
if (SYMBOL_P(val))
|
251
248
|
val = rb_funcall(val, id_to_s, 0);
|
252
|
-
g_value_set_string(result,
|
249
|
+
g_value_set_string(result, RVAL2CSTR_ACCEPT_NIL(val));
|
253
250
|
return;
|
254
251
|
}
|
255
252
|
case G_TYPE_OBJECT:
|
data/ext/glib2/rbgutil.c
CHANGED
data/lib/mkmf-gnome2.rb
CHANGED
@@ -90,6 +90,7 @@ def add_depend_package(target_name, target_srcdir, top_srcdir, options={})
|
|
90
90
|
unless File.exist?(target_build_dir_full_path)
|
91
91
|
target_build_dir_full_path = File.join(topdir, target_srcdir)
|
92
92
|
end
|
93
|
+
next unless File.exist?(target_build_dir_full_path)
|
93
94
|
$INCFLAGS = "-I#{target_build_dir_full_path} #{$INCFLAGS}"
|
94
95
|
|
95
96
|
if /cygwin|mingw/ =~ RUBY_PLATFORM
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glib2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 369
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 90
|
9
|
-
-
|
10
|
-
version: 0.90.
|
9
|
+
- 3
|
10
|
+
version: 0.90.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- The Ruby-GNOME2 Proejct Team
|
@@ -15,10 +15,23 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-10-23 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: pkg-config
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
22
35
|
description: Ruby/GLib2 is a Ruby binding of GLib-2.x.
|
23
36
|
email: ruby-gnome2-devel-en@lists.sourceforge.net
|
24
37
|
executables: []
|