glib2 1.0.3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/glib2/extconf.rb +1 -0
- data/ext/glib2/glib2.def +23 -0
- data/ext/glib2/rbgcompat.h +19 -5
- data/ext/glib2/rbglib.c +607 -160
- data/ext/glib2/rbglib.h +81 -26
- data/ext/glib2/rbglib2conversions.h +57 -0
- data/ext/glib2/rbglib_bookmarkfile.c +117 -107
- data/ext/glib2/rbglib_completion.c +37 -26
- data/ext/glib2/rbglib_convert.c +42 -30
- data/ext/glib2/rbglib_error.c +20 -10
- data/ext/glib2/rbglib_fileutils.c +48 -37
- data/ext/glib2/rbglib_i18n.c +24 -14
- data/ext/glib2/rbglib_int64.c +24 -16
- data/ext/glib2/rbglib_iochannel.c +146 -204
- data/ext/glib2/rbglib_iochannel_win32_socket.c +56 -0
- data/ext/glib2/rbglib_iochannelerror.c +49 -0
- data/ext/glib2/rbglib_keyfile.c +171 -182
- data/ext/glib2/rbglib_maincontext.c +107 -92
- data/ext/glib2/rbglib_mainloop.c +34 -21
- data/ext/glib2/rbglib_messages.c +53 -44
- data/ext/glib2/rbglib_pollfd.c +37 -26
- data/ext/glib2/rbglib_shell.c +29 -22
- data/ext/glib2/rbglib_shellerror.c +34 -0
- data/ext/glib2/rbglib_source.c +49 -36
- data/ext/glib2/rbglib_spawn.c +50 -61
- data/ext/glib2/rbglib_spawnerror.c +53 -0
- data/ext/glib2/rbglib_threads.c +28 -16
- data/ext/glib2/rbglib_timer.c +35 -24
- data/ext/glib2/rbglib_ucs4.c +79 -0
- data/ext/glib2/rbglib_unichar.c +209 -0
- data/ext/glib2/rbglib_unicode.c +34 -584
- data/ext/glib2/rbglib_utf16.c +78 -0
- data/ext/glib2/rbglib_utf8.c +259 -0
- data/ext/glib2/rbglib_utils.c +95 -91
- data/ext/glib2/rbglib_win32.c +52 -45
- data/ext/glib2/rbglibdeprecated.c +56 -0
- data/ext/glib2/rbglibdeprecated.h +34 -0
- data/ext/glib2/rbgobj_boxed.c +40 -33
- data/ext/glib2/rbgobj_closure.c +45 -34
- data/ext/glib2/rbgobj_convert.c +19 -9
- data/ext/glib2/rbgobj_enumflags.c +109 -0
- data/ext/glib2/rbgobj_enums.c +67 -646
- data/ext/glib2/rbgobj_flags.c +522 -0
- data/ext/glib2/rbgobj_fundamental.c +19 -6
- data/ext/glib2/rbgobj_object.c +90 -81
- data/ext/glib2/rbgobj_param.c +78 -83
- data/ext/glib2/rbgobj_paramspecs.c +20 -12
- data/ext/glib2/rbgobj_signal.c +248 -193
- data/ext/glib2/rbgobj_strv.c +20 -10
- data/ext/glib2/rbgobj_type.c +153 -149
- data/ext/glib2/rbgobj_typeinstance.c +49 -39
- data/ext/glib2/rbgobj_typeinterface.c +37 -27
- data/ext/glib2/rbgobj_typemodule.c +39 -29
- data/ext/glib2/rbgobj_typeplugin.c +36 -26
- data/ext/glib2/rbgobj_value.c +41 -11
- data/ext/glib2/rbgobj_valuearray.c +59 -23
- data/ext/glib2/rbgobj_valuetypes.c +27 -17
- data/ext/glib2/rbgobject.c +26 -40
- data/ext/glib2/rbgobject.h +38 -20
- data/ext/glib2/rbgprivate.h +87 -5
- data/ext/glib2/rbgutil.c +52 -238
- data/ext/glib2/rbgutil.h +55 -42
- data/ext/glib2/rbgutil_callback.c +47 -12
- data/ext/glib2/rbgutil_list.c +173 -0
- data/ext/glib2/rbgutil_list.h +85 -0
- data/ext/glib2/rbgutildeprecated.c +252 -0
- data/ext/glib2/rbgutildeprecated.h +63 -0
- data/lib/glib-mkenums.rb +2 -2
- data/lib/glib2.rb +2 -25
- data/lib/glib2/deprecatable.rb +149 -0
- data/lib/gnome2-raketask.rb +45 -15
- data/lib/gnome2-win32-binary-downloader.rb +1 -1
- data/lib/mkmf-gnome2.rb +37 -18
- data/test/test_flags.rb +129 -0
- data/test/test_key_file.rb +6 -2
- data/test/test_spawn.rb +33 -0
- metadata +26 -7
- data/ChangeLog +0 -3513
data/ext/glib2/rbglib_int64.c
CHANGED
@@ -1,19 +1,27 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2003 Masahiro Sakai
|
5
|
+
* Copyright (C) 2002 Masahiro Sakai
|
6
|
+
* Kenichi Komiya
|
7
|
+
*
|
8
|
+
* This library is free software; you can redistribute it and/or
|
9
|
+
* modify it under the terms of the GNU Lesser General Public
|
10
|
+
* License as published by the Free Software Foundation; either
|
11
|
+
* version 2.1 of the License, or (at your option) any later version.
|
12
|
+
*
|
13
|
+
* This library is distributed in the hope that it will be useful,
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
16
|
+
* Lesser General Public License for more details.
|
17
|
+
*
|
18
|
+
* You should have received a copy of the GNU Lesser General Public
|
19
|
+
* License along with this library; if not, write to the Free Software
|
20
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
21
|
+
* MA 02110-1301 USA
|
22
|
+
*/
|
23
|
+
|
24
|
+
#include "rbgprivate.h"
|
17
25
|
|
18
26
|
static ID id_and;
|
19
27
|
static ID id_rshift;
|
@@ -142,7 +150,7 @@ rbglib_num_to_uint64(VALUE val)
|
|
142
150
|
/**********************************************************************/
|
143
151
|
|
144
152
|
void
|
145
|
-
Init_glib_int64()
|
153
|
+
Init_glib_int64(void)
|
146
154
|
{
|
147
155
|
id_and = rb_intern("&");
|
148
156
|
id_rshift = rb_intern(">>");
|
@@ -1,18 +1,29 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2005 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
|
|
14
24
|
static ID id_call;
|
15
25
|
|
26
|
+
#define RG_TARGET_NAMESPACE cIOChannel
|
16
27
|
#define _SELF(s) ((GIOChannel*)RVAL2BOXED(s, G_TYPE_IO_CHANNEL))
|
17
28
|
|
18
29
|
static void
|
@@ -32,7 +43,7 @@ ioc_error(GIOStatus status, GError *err)
|
|
32
43
|
}
|
33
44
|
|
34
45
|
static VALUE
|
35
|
-
|
46
|
+
rg_initialize(gint argc, VALUE *argv, VALUE self)
|
36
47
|
{
|
37
48
|
VALUE arg1, arg2;
|
38
49
|
|
@@ -78,7 +89,7 @@ ioc_close(VALUE self)
|
|
78
89
|
}
|
79
90
|
|
80
91
|
static VALUE
|
81
|
-
|
92
|
+
rg_s_open(gint argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
|
82
93
|
{
|
83
94
|
VALUE arg1, arg2;
|
84
95
|
VALUE rio;
|
@@ -113,7 +124,7 @@ ioc_s_open(gint argc, VALUE *argv, VALUE self)
|
|
113
124
|
}
|
114
125
|
|
115
126
|
static VALUE
|
116
|
-
|
127
|
+
rg_fileno(VALUE self)
|
117
128
|
{
|
118
129
|
#ifdef G_OS_UNIX
|
119
130
|
return INT2NUM(g_io_channel_unix_get_fd(_SELF(self)));
|
@@ -130,58 +141,45 @@ ioc_get_fd(VALUE self)
|
|
130
141
|
void g_io_channel_init (GIOChannel *channel);
|
131
142
|
*/
|
132
143
|
|
133
|
-
|
134
144
|
static VALUE
|
135
|
-
|
145
|
+
rg_read(gint argc, VALUE *argv, VALUE self)
|
136
146
|
{
|
137
|
-
VALUE
|
138
|
-
|
147
|
+
VALUE rbcount;
|
148
|
+
gsize count;
|
149
|
+
gchar *buffer;
|
139
150
|
gsize bytes_read;
|
140
|
-
|
151
|
+
GIOChannel *channel = _SELF(self);
|
152
|
+
GError *error = NULL;
|
141
153
|
GIOStatus status;
|
142
|
-
GIOChannel *channel;
|
143
154
|
|
144
|
-
rb_scan_args(argc, argv, "01", &
|
155
|
+
rb_scan_args(argc, argv, "01", &rbcount);
|
145
156
|
|
146
|
-
|
147
|
-
|
148
|
-
|
157
|
+
if (NIL_P(rbcount)) {
|
158
|
+
status = g_io_channel_read_to_end(channel, &buffer, &bytes_read, &error);
|
159
|
+
ioc_error(status, error);
|
149
160
|
|
150
|
-
|
161
|
+
return buffer != NULL ? CSTR2RVAL_LEN_FREE(buffer, bytes_read) : CSTR2RVAL("");
|
162
|
+
}
|
151
163
|
|
152
|
-
|
153
|
-
ret = CSTR2RVAL("");
|
154
|
-
} else {
|
155
|
-
ioc_error(status, err);
|
156
|
-
}
|
157
|
-
if (buf) {
|
158
|
-
ret = CSTR2RVAL_LEN(buf, length);
|
159
|
-
g_free(buf);
|
160
|
-
} else {
|
161
|
-
ret = CSTR2RVAL("");
|
162
|
-
}
|
163
|
-
} else {
|
164
|
-
buf = ALLOCA_N(gchar, count);
|
165
|
-
memset(buf, '\0', count);
|
164
|
+
count = NUM2UINT(rbcount);
|
166
165
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
return ret;
|
166
|
+
buffer = g_new(gchar, count);
|
167
|
+
memset(buffer, '\0', count);
|
168
|
+
|
169
|
+
status = g_io_channel_read_chars(channel, buffer, count, &bytes_read, &error);
|
170
|
+
if (status == G_IO_STATUS_NORMAL)
|
171
|
+
return CSTR2RVAL_LEN_FREE(buffer, bytes_read);
|
172
|
+
else if (status == G_IO_STATUS_EOF)
|
173
|
+
return CSTR2RVAL("");
|
174
|
+
|
175
|
+
ioc_error(status, error);
|
176
|
+
|
177
|
+
/* Not reached. */
|
178
|
+
return Qnil;
|
181
179
|
}
|
182
180
|
|
183
181
|
static VALUE
|
184
|
-
|
182
|
+
rg_readchar(VALUE self)
|
185
183
|
{
|
186
184
|
gunichar thechar;
|
187
185
|
GError* err = NULL;
|
@@ -193,7 +191,7 @@ ioc_read_unichar(VALUE self)
|
|
193
191
|
}
|
194
192
|
|
195
193
|
static VALUE
|
196
|
-
|
194
|
+
rg_getc(VALUE self)
|
197
195
|
{
|
198
196
|
gunichar thechar;
|
199
197
|
GError* err = NULL;
|
@@ -211,7 +209,7 @@ ioc_getuc(VALUE self)
|
|
211
209
|
}
|
212
210
|
|
213
211
|
static VALUE
|
214
|
-
|
212
|
+
rg_each_char(VALUE self)
|
215
213
|
{
|
216
214
|
if (!rb_block_given_p()) {
|
217
215
|
rb_raise(rb_eArgError, "called without a block");
|
@@ -232,7 +230,7 @@ ioc_each_char(VALUE self)
|
|
232
230
|
}
|
233
231
|
|
234
232
|
static VALUE
|
235
|
-
|
233
|
+
rg_readline(gint argc, VALUE *argv, VALUE self)
|
236
234
|
{
|
237
235
|
gchar* str;
|
238
236
|
VALUE line_term, ret;
|
@@ -259,7 +257,7 @@ ioc_read_line(gint argc, VALUE *argv, VALUE self)
|
|
259
257
|
}
|
260
258
|
|
261
259
|
ioc_error(status, err);
|
262
|
-
|
260
|
+
|
263
261
|
ret = str ? CSTR2RVAL(str) : CSTR2RVAL("");
|
264
262
|
g_free(str);
|
265
263
|
|
@@ -267,7 +265,7 @@ ioc_read_line(gint argc, VALUE *argv, VALUE self)
|
|
267
265
|
}
|
268
266
|
|
269
267
|
static VALUE
|
270
|
-
|
268
|
+
rg_gets(gint argc, VALUE *argv, VALUE self)
|
271
269
|
{
|
272
270
|
gchar* str;
|
273
271
|
VALUE line_term, ret;
|
@@ -321,7 +319,7 @@ ioc_set_line_term(VALUE args)
|
|
321
319
|
}
|
322
320
|
|
323
321
|
static VALUE
|
324
|
-
|
322
|
+
rg_each(gint argc, VALUE *argv, VALUE self)
|
325
323
|
{
|
326
324
|
gchar* str;
|
327
325
|
VALUE line_term;
|
@@ -368,7 +366,6 @@ ioc_each_line(gint argc, VALUE *argv, VALUE self)
|
|
368
366
|
return self;
|
369
367
|
}
|
370
368
|
|
371
|
-
|
372
369
|
/* Don't need this.
|
373
370
|
GIOStatus g_io_channel_read_line_string (GIOChannel *channel,
|
374
371
|
GString *buffer,
|
@@ -398,7 +395,7 @@ ioc_read_to_end(VALUE self)
|
|
398
395
|
*/
|
399
396
|
|
400
397
|
static VALUE
|
401
|
-
|
398
|
+
rg_write(VALUE self, VALUE buf)
|
402
399
|
{
|
403
400
|
gssize count;
|
404
401
|
gsize bytes_written;
|
@@ -421,7 +418,7 @@ ioc_write_chars(VALUE self, VALUE buf)
|
|
421
418
|
static ID id_unpack;
|
422
419
|
|
423
420
|
static VALUE
|
424
|
-
|
421
|
+
rg_putc(VALUE self, VALUE thechar)
|
425
422
|
{
|
426
423
|
GError* err = NULL;
|
427
424
|
GIOStatus status;
|
@@ -443,7 +440,7 @@ ioc_write_unichar(VALUE self, VALUE thechar)
|
|
443
440
|
}
|
444
441
|
|
445
442
|
static VALUE
|
446
|
-
|
443
|
+
rg_flush(VALUE self)
|
447
444
|
{
|
448
445
|
GError* err = NULL;
|
449
446
|
GIOStatus status = g_io_channel_flush(_SELF(self), &err);
|
@@ -452,7 +449,7 @@ ioc_flush(VALUE self)
|
|
452
449
|
}
|
453
450
|
|
454
451
|
static VALUE
|
455
|
-
|
452
|
+
rg_seek(gint argc, VALUE *argv, VALUE self)
|
456
453
|
{
|
457
454
|
VALUE ofs, type;
|
458
455
|
GIOStatus status;
|
@@ -471,7 +468,7 @@ ioc_seek(gint argc, VALUE *argv, VALUE self)
|
|
471
468
|
}
|
472
469
|
|
473
470
|
static VALUE
|
474
|
-
|
471
|
+
rg_set_pos(VALUE self, VALUE pos)
|
475
472
|
{
|
476
473
|
GError* err = NULL;
|
477
474
|
GIOStatus status = g_io_channel_seek_position(_SELF(self), NUM2INT(pos),
|
@@ -481,7 +478,7 @@ ioc_seek_pos(VALUE self, VALUE pos)
|
|
481
478
|
}
|
482
479
|
|
483
480
|
static VALUE
|
484
|
-
|
481
|
+
rg_close(gint argc, VALUE *argv, VALUE self)
|
485
482
|
{
|
486
483
|
VALUE flush;
|
487
484
|
GError* err = NULL;
|
@@ -501,7 +498,7 @@ ioc_shutdown(gint argc, VALUE *argv, VALUE self)
|
|
501
498
|
}
|
502
499
|
|
503
500
|
static VALUE
|
504
|
-
|
501
|
+
rg_create_watch(VALUE self, VALUE condition)
|
505
502
|
{
|
506
503
|
return BOXED2RVAL(g_io_create_watch(_SELF(self), NUM2INT(condition)),
|
507
504
|
G_TYPE_SOURCE);
|
@@ -516,14 +513,14 @@ io_func(GIOChannel *source, GIOCondition condition, gpointer func)
|
|
516
513
|
}
|
517
514
|
|
518
515
|
static VALUE
|
519
|
-
|
516
|
+
rg_add_watch(VALUE self, VALUE condition)
|
520
517
|
{
|
521
518
|
VALUE func = rb_block_proc();
|
522
519
|
G_RELATIVE(self, func);
|
523
520
|
return UINT2NUM(g_io_add_watch(_SELF(self), NUM2INT(condition),
|
524
521
|
(GIOFunc)io_func, (gpointer)func));
|
525
522
|
}
|
526
|
-
|
523
|
+
|
527
524
|
/* Don't need this
|
528
525
|
guint g_io_add_watch_full (GIOChannel *channel,
|
529
526
|
gint priority,
|
@@ -534,32 +531,32 @@ guint g_io_add_watch_full (GIOChannel *channel,
|
|
534
531
|
*/
|
535
532
|
|
536
533
|
static VALUE
|
537
|
-
|
534
|
+
rg_buffer_size(VALUE self)
|
538
535
|
{
|
539
536
|
return UINT2NUM(g_io_channel_get_buffer_size(_SELF(self)));
|
540
537
|
}
|
541
538
|
|
542
539
|
static VALUE
|
543
|
-
|
540
|
+
rg_set_buffer_size(VALUE self, VALUE buffer_size)
|
544
541
|
{
|
545
542
|
g_io_channel_set_buffer_size(_SELF(self), NUM2UINT(buffer_size));
|
546
543
|
return self;
|
547
544
|
}
|
548
545
|
|
549
546
|
static VALUE
|
550
|
-
|
547
|
+
rg_buffer_condition(VALUE self)
|
551
548
|
{
|
552
549
|
return INT2NUM(g_io_channel_get_buffer_condition(_SELF(self)));
|
553
550
|
}
|
554
551
|
|
555
552
|
static VALUE
|
556
|
-
|
553
|
+
rg_flags(VALUE self)
|
557
554
|
{
|
558
555
|
return INT2NUM(g_io_channel_get_flags(_SELF(self)));
|
559
556
|
}
|
560
557
|
|
561
558
|
static VALUE
|
562
|
-
|
559
|
+
rg_set_flags(VALUE self, VALUE flags)
|
563
560
|
{
|
564
561
|
GError* err = NULL;
|
565
562
|
GIOStatus status = g_io_channel_set_flags(_SELF(self),
|
@@ -595,26 +592,26 @@ ioc_set_line_term(VALUE self, VALUE line_term)
|
|
595
592
|
*/
|
596
593
|
|
597
594
|
static VALUE
|
598
|
-
|
595
|
+
rg_buffered(VALUE self)
|
599
596
|
{
|
600
597
|
return CBOOL2RVAL(g_io_channel_get_buffered(_SELF(self)));
|
601
598
|
}
|
602
599
|
|
603
600
|
static VALUE
|
604
|
-
|
601
|
+
rg_set_buffered(VALUE self, VALUE buffered)
|
605
602
|
{
|
606
603
|
g_io_channel_set_buffered(_SELF(self), RVAL2CBOOL(buffered));
|
607
604
|
return self;
|
608
605
|
}
|
609
606
|
|
610
607
|
static VALUE
|
611
|
-
|
608
|
+
rg_encoding(VALUE self)
|
612
609
|
{
|
613
610
|
return CSTR2RVAL(g_io_channel_get_encoding(_SELF(self)));
|
614
611
|
}
|
615
612
|
|
616
613
|
static VALUE
|
617
|
-
|
614
|
+
rg_set_encoding(VALUE self, VALUE encoding)
|
618
615
|
{
|
619
616
|
GError* err = NULL;
|
620
617
|
GIOStatus status;
|
@@ -648,41 +645,16 @@ GIOError g_io_channel_seek (GIOChannel *channel,
|
|
648
645
|
void g_io_channel_close (GIOChannel *channel);
|
649
646
|
*/
|
650
647
|
|
651
|
-
#ifdef G_OS_WIN32
|
652
|
-
static VALUE
|
653
|
-
ioc_win32_socket_initialize(VALUE self, VALUE socket)
|
654
|
-
{
|
655
|
-
GIOChannel *io = NULL;
|
656
|
-
int fd;
|
657
|
-
|
658
|
-
rb_secure(4);
|
659
|
-
/* TODO: support IO object */
|
660
|
-
fd = NUM2INT(socket);
|
661
|
-
io = g_io_channel_win32_new_socket(rb_w32_get_osfhandle(fd));
|
662
|
-
G_INITIALIZE(self, io);
|
663
|
-
|
664
|
-
return Qnil;
|
665
|
-
}
|
666
|
-
#endif
|
667
|
-
|
668
|
-
static VALUE
|
669
|
-
ioc_error_s_from_errno(VALUE self, VALUE errno_)
|
670
|
-
{
|
671
|
-
return INT2NUM(g_io_channel_error_from_errno(NUM2INT(errno_)));
|
672
|
-
}
|
673
|
-
|
674
648
|
/*
|
675
649
|
* Stolen some convenient methods from io.c
|
676
650
|
*/
|
677
651
|
static VALUE
|
678
|
-
|
652
|
+
rg_printf(int argc, VALUE *argv, VALUE self)
|
679
653
|
{
|
680
|
-
|
654
|
+
rg_write(self, rb_f_sprintf(argc, argv));
|
681
655
|
return Qnil;
|
682
656
|
}
|
683
657
|
|
684
|
-
static VALUE ioc_puts(int argc, VALUE* argv, VALUE self);
|
685
|
-
|
686
658
|
static VALUE
|
687
659
|
ioc_puts_ary(VALUE ary, VALUE out, int recur)
|
688
660
|
{
|
@@ -700,14 +672,14 @@ ioc_puts_ary(VALUE ary, VALUE out, int recur)
|
|
700
672
|
}
|
701
673
|
|
702
674
|
static VALUE
|
703
|
-
|
675
|
+
rg_puts(int argc, VALUE *argv, VALUE self)
|
704
676
|
{
|
705
677
|
int i;
|
706
678
|
VALUE line;
|
707
679
|
|
708
680
|
/* if no argument given, print newline. */
|
709
681
|
if (argc == 0) {
|
710
|
-
|
682
|
+
rg_write(self, rb_default_rs);
|
711
683
|
return Qnil;
|
712
684
|
}
|
713
685
|
for (i=0; i<argc; i++) {
|
@@ -715,13 +687,13 @@ ioc_puts(int argc, VALUE *argv, VALUE self)
|
|
715
687
|
line = rb_str_new2("nil");
|
716
688
|
}
|
717
689
|
else {
|
718
|
-
#
|
690
|
+
#ifdef HAVE_RB_CHECK_ARRAY_TYPE
|
719
691
|
line = rb_check_array_type(argv[i]);
|
720
692
|
#else
|
721
693
|
line = rb_check_convert_type(argv[i], T_ARRAY, "Array", "to_ary");
|
722
694
|
#endif
|
723
695
|
if (!NIL_P(line)) {
|
724
|
-
#
|
696
|
+
#ifdef HAVE_RB_EXEC_RECURSIVE
|
725
697
|
rb_exec_recursive(ioc_puts_ary, line, self);
|
726
698
|
#else
|
727
699
|
rb_protect_inspect(ioc_puts_ary, line, self);
|
@@ -730,10 +702,10 @@ ioc_puts(int argc, VALUE *argv, VALUE self)
|
|
730
702
|
}
|
731
703
|
line = rb_obj_as_string(argv[i]);
|
732
704
|
}
|
733
|
-
|
705
|
+
rg_write(self, line);
|
734
706
|
if (RSTRING_LEN(line) == 0 ||
|
735
707
|
RSTRING_PTR(line)[RSTRING_LEN(line)-1] != '\n') {
|
736
|
-
|
708
|
+
rg_write(self, rb_default_rs);
|
737
709
|
}
|
738
710
|
}
|
739
711
|
|
@@ -741,7 +713,7 @@ ioc_puts(int argc, VALUE *argv, VALUE self)
|
|
741
713
|
}
|
742
714
|
|
743
715
|
static VALUE
|
744
|
-
|
716
|
+
rg_print(int argc, VALUE *argv, VALUE out)
|
745
717
|
{
|
746
718
|
int i;
|
747
719
|
VALUE line;
|
@@ -754,125 +726,95 @@ ioc_print(int argc, VALUE *argv, VALUE out)
|
|
754
726
|
}
|
755
727
|
for (i=0; i<argc; i++) {
|
756
728
|
if (!NIL_P(rb_output_fs) && i>0) {
|
757
|
-
|
729
|
+
rg_write(out, rb_output_fs);
|
758
730
|
}
|
759
731
|
switch (TYPE(argv[i])) {
|
760
732
|
case T_NIL:
|
761
|
-
|
733
|
+
rg_write(out, rb_str_new2("nil"));
|
762
734
|
break;
|
763
735
|
default:
|
764
|
-
|
736
|
+
rg_write(out, argv[i]);
|
765
737
|
break;
|
766
738
|
}
|
767
739
|
}
|
768
740
|
if (!NIL_P(rb_output_rs)) {
|
769
|
-
|
741
|
+
rg_write(out, rb_output_rs);
|
770
742
|
}
|
771
743
|
|
772
744
|
return Qnil;
|
773
745
|
}
|
774
746
|
|
775
|
-
|
776
747
|
void
|
777
|
-
Init_glib_io_channel()
|
748
|
+
Init_glib_io_channel(void)
|
778
749
|
{
|
779
|
-
VALUE
|
780
|
-
VALUE ioc_error = G_DEF_ERROR2(G_IO_CHANNEL_ERROR, "IOChannelError", mGLib, rb_eIOError);
|
750
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_IO_CHANNEL, "IOChannel", mGLib);
|
781
751
|
|
782
|
-
rb_include_module(
|
752
|
+
rb_include_module(RG_TARGET_NAMESPACE, rb_mEnumerable);
|
783
753
|
|
784
754
|
id_call = rb_intern("call");
|
785
755
|
id_unpack = rb_intern("unpack");
|
786
756
|
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
G_DEF_SETTERS(io);
|
822
|
-
|
823
|
-
#ifdef G_OS_WIN32
|
824
|
-
{
|
825
|
-
/* GIOWin32Channel */
|
826
|
-
VALUE io_channel_win32_socket;
|
827
|
-
io_channel_win32_socket =
|
828
|
-
rb_define_class_under(mGLib,
|
829
|
-
"IOChannelWin32Socket",
|
830
|
-
io);
|
831
|
-
rb_define_method(io_channel_win32_socket, "initialize",
|
832
|
-
ioc_win32_socket_initialize, 1);
|
833
|
-
}
|
834
|
-
#endif
|
757
|
+
RG_DEF_METHOD(initialize, -1);
|
758
|
+
RG_DEF_SMETHOD(open, -1);
|
759
|
+
RG_DEF_METHOD(fileno, 0);
|
760
|
+
RG_DEF_ALIAS("to_i", "fileno");
|
761
|
+
RG_DEF_METHOD(read, -1);
|
762
|
+
RG_DEF_METHOD(readchar, 0);
|
763
|
+
RG_DEF_METHOD(getc, 0);
|
764
|
+
RG_DEF_METHOD(readline, -1);
|
765
|
+
RG_DEF_METHOD(gets, -1);
|
766
|
+
RG_DEF_METHOD(each, -1);
|
767
|
+
RG_DEF_ALIAS("each_line", "each");
|
768
|
+
RG_DEF_METHOD(each_char, 0);
|
769
|
+
RG_DEF_METHOD(write, 1);
|
770
|
+
RG_DEF_METHOD(printf, -1);
|
771
|
+
RG_DEF_METHOD(print, -1);
|
772
|
+
RG_DEF_METHOD(puts, -1);
|
773
|
+
RG_DEF_METHOD(putc, 1);
|
774
|
+
RG_DEF_METHOD(flush, 0);
|
775
|
+
RG_DEF_METHOD(seek, -1);
|
776
|
+
RG_DEF_METHOD(set_pos, 1);
|
777
|
+
RG_DEF_METHOD(close, -1);
|
778
|
+
RG_DEF_METHOD(create_watch, 1);
|
779
|
+
RG_DEF_METHOD(add_watch, 1);
|
780
|
+
RG_DEF_METHOD(buffer_size, 0);
|
781
|
+
RG_DEF_METHOD(set_buffer_size, 1);
|
782
|
+
RG_DEF_METHOD(buffer_condition, 0);
|
783
|
+
RG_DEF_METHOD(flags, 0);
|
784
|
+
RG_DEF_METHOD(set_flags, 1);
|
785
|
+
RG_DEF_METHOD(buffered, 0);
|
786
|
+
RG_DEF_METHOD(set_buffered, 1);
|
787
|
+
RG_DEF_METHOD(encoding, 0);
|
788
|
+
RG_DEF_METHOD(set_encoding, 1);
|
789
|
+
|
790
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
835
791
|
|
836
792
|
/* GSeekType */
|
837
|
-
rb_define_const(
|
838
|
-
rb_define_const(
|
839
|
-
rb_define_const(
|
840
|
-
|
793
|
+
rb_define_const(RG_TARGET_NAMESPACE, "SEEK_CUR", INT2NUM(G_SEEK_CUR));
|
794
|
+
rb_define_const(RG_TARGET_NAMESPACE, "SEEK_SET", INT2NUM(G_SEEK_SET));
|
795
|
+
rb_define_const(RG_TARGET_NAMESPACE, "SEEK_END", INT2NUM(G_SEEK_END));
|
796
|
+
|
841
797
|
/* GIOStatus */
|
842
|
-
rb_define_const(
|
843
|
-
rb_define_const(
|
844
|
-
rb_define_const(
|
845
|
-
rb_define_const(
|
798
|
+
rb_define_const(RG_TARGET_NAMESPACE, "STATUS_ERROR", INT2NUM(G_IO_STATUS_ERROR));
|
799
|
+
rb_define_const(RG_TARGET_NAMESPACE, "STATUS_NORMAL", INT2NUM(G_IO_STATUS_NORMAL));
|
800
|
+
rb_define_const(RG_TARGET_NAMESPACE, "STATUS_EOF", INT2NUM(G_IO_STATUS_EOF));
|
801
|
+
rb_define_const(RG_TARGET_NAMESPACE, "STATUS_AGAIN", INT2NUM(G_IO_STATUS_AGAIN));
|
846
802
|
|
847
803
|
/* GIOCondition */
|
848
|
-
rb_define_const(
|
849
|
-
rb_define_const(
|
850
|
-
rb_define_const(
|
851
|
-
rb_define_const(
|
852
|
-
rb_define_const(
|
853
|
-
rb_define_const(
|
804
|
+
rb_define_const(RG_TARGET_NAMESPACE, "IN", INT2NUM(G_IO_IN));
|
805
|
+
rb_define_const(RG_TARGET_NAMESPACE, "OUT", INT2NUM(G_IO_OUT));
|
806
|
+
rb_define_const(RG_TARGET_NAMESPACE, "PRI", INT2NUM(G_IO_PRI));
|
807
|
+
rb_define_const(RG_TARGET_NAMESPACE, "ERR", INT2NUM(G_IO_ERR));
|
808
|
+
rb_define_const(RG_TARGET_NAMESPACE, "HUP", INT2NUM(G_IO_HUP));
|
809
|
+
rb_define_const(RG_TARGET_NAMESPACE, "NVAL", INT2NUM(G_IO_NVAL));
|
854
810
|
|
855
811
|
/* GIOFlags */
|
856
|
-
rb_define_const(
|
857
|
-
rb_define_const(
|
858
|
-
rb_define_const(
|
859
|
-
rb_define_const(
|
860
|
-
rb_define_const(
|
861
|
-
rb_define_const(
|
862
|
-
rb_define_const(
|
863
|
-
rb_define_const(
|
864
|
-
|
865
|
-
/* GIOChannelError */
|
866
|
-
rb_define_singleton_method(ioc_error, "from_errno", ioc_error_s_from_errno, 1);
|
867
|
-
|
868
|
-
rb_define_const(ioc_error, "FBIG", INT2NUM(G_IO_CHANNEL_ERROR_FBIG));
|
869
|
-
rb_define_const(ioc_error, "INVAL", INT2NUM(G_IO_CHANNEL_ERROR_INVAL));
|
870
|
-
rb_define_const(ioc_error, "IO", INT2NUM(G_IO_CHANNEL_ERROR_IO));
|
871
|
-
rb_define_const(ioc_error, "ISDIR", INT2NUM(G_IO_CHANNEL_ERROR_ISDIR));
|
872
|
-
rb_define_const(ioc_error, "NOSPC", INT2NUM(G_IO_CHANNEL_ERROR_NOSPC));
|
873
|
-
rb_define_const(ioc_error, "NXIO", INT2NUM(G_IO_CHANNEL_ERROR_NXIO));
|
874
|
-
rb_define_const(ioc_error, "OVERFLOW", INT2NUM(G_IO_CHANNEL_ERROR_OVERFLOW));
|
875
|
-
rb_define_const(ioc_error, "PIPE", INT2NUM(G_IO_CHANNEL_ERROR_PIPE));
|
876
|
-
rb_define_const(ioc_error, "FAILED", INT2NUM(G_IO_CHANNEL_ERROR_FAILED));
|
877
|
-
|
812
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_APPEND", INT2NUM(G_IO_FLAG_APPEND));
|
813
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_NONBLOCK", INT2NUM(G_IO_FLAG_NONBLOCK));
|
814
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_READABLE", INT2NUM(G_IO_FLAG_IS_READABLE));
|
815
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_WRITEABLE", INT2NUM(G_IO_FLAG_IS_WRITEABLE));
|
816
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_IS_SEEKABLE", INT2NUM(G_IO_FLAG_IS_SEEKABLE));
|
817
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_MASK", INT2NUM(G_IO_FLAG_MASK));
|
818
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_GET_MASK", INT2NUM(G_IO_FLAG_GET_MASK));
|
819
|
+
rb_define_const(RG_TARGET_NAMESPACE, "FLAG_SET_MASK", INT2NUM(G_IO_FLAG_SET_MASK));
|
878
820
|
}
|