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,19 +1,27 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /**********************************************************************
3
-
4
- utils_int64.c -
5
-
6
- $Author: isambart $
7
- $Date: 2007/08/14 10:35:04 $
8
-
9
- Copyright (C) 2003 Masahiro Sakai
10
- Copyright (C) 2002 Masahiro Sakai
11
- Kenichi Komiya
12
-
13
- **********************************************************************/
14
-
15
- #include <glib/gtypes.h>
16
- #include "rbglib.h"
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
- rbglib_iochannel.c -
5
-
6
- $Author: ggc $
7
- $Date: 2007/07/13 16:07:28 $
8
-
9
- Copyright (C) 2005 Masao Mutoh
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
- ioc_initialize(gint argc, VALUE *argv, VALUE self)
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
- ioc_s_open(gint argc, VALUE *argv, VALUE self)
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
- ioc_get_fd(VALUE self)
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
- ioc_read_chars(gint argc, VALUE *argv, VALUE self)
145
+ rg_read(gint argc, VALUE *argv, VALUE self)
136
146
  {
137
- VALUE count, ret;
138
- gchar* buf;
147
+ VALUE rbcount;
148
+ gsize count;
149
+ gchar *buffer;
139
150
  gsize bytes_read;
140
- GError* err = NULL;
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", &count);
155
+ rb_scan_args(argc, argv, "01", &rbcount);
145
156
 
146
- channel = _SELF(self);
147
- if (NIL_P(count)) {
148
- gsize length;
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
- status = g_io_channel_read_to_end(channel, &buf, &length, &err);
161
+ return buffer != NULL ? CSTR2RVAL_LEN_FREE(buffer, bytes_read) : CSTR2RVAL("");
162
+ }
151
163
 
152
- if (status == G_IO_STATUS_EOF) {
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
- status = g_io_channel_read_chars(channel, buf, NUM2UINT(count),
168
- &bytes_read, &err);
169
- if (status == G_IO_STATUS_EOF) {
170
- ret = CSTR2RVAL("");
171
- } else {
172
- ioc_error(status, err);
173
- }
174
- if (buf) {
175
- ret = CSTR2RVAL_LEN(buf, bytes_read);
176
- } else {
177
- ret = CSTR2RVAL("");
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
- ioc_read_unichar(VALUE self)
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
- ioc_getuc(VALUE self)
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
- ioc_each_char(VALUE self)
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
- ioc_read_line(gint argc, VALUE *argv, VALUE self)
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
- ioc_gets(gint argc, VALUE *argv, VALUE self)
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
- ioc_each_line(gint argc, VALUE *argv, VALUE self)
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
- ioc_write_chars(VALUE self, VALUE buf)
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
- ioc_write_unichar(VALUE self, VALUE thechar)
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
- ioc_flush(VALUE self)
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
- ioc_seek(gint argc, VALUE *argv, VALUE self)
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
- ioc_seek_pos(VALUE self, VALUE pos)
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
- ioc_shutdown(gint argc, VALUE *argv, VALUE self)
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
- ioc_create_watch(VALUE self, VALUE condition)
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
- ioc_add_watch(VALUE self, VALUE condition)
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
- ioc_get_buffer_size(VALUE self)
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
- ioc_set_buffer_size(VALUE self, VALUE buffer_size)
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
- ioc_get_buffer_condition(VALUE self)
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
- ioc_get_flags(VALUE self)
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
- ioc_set_flags(VALUE self, VALUE flags)
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
- ioc_get_buffered(VALUE self)
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
- ioc_set_buffered(VALUE self, VALUE buffered)
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
- ioc_get_encoding(VALUE self)
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
- ioc_set_encoding(VALUE self, VALUE encoding)
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
- ioc_printf(int argc, VALUE *argv, VALUE self)
652
+ rg_printf(int argc, VALUE *argv, VALUE self)
679
653
  {
680
- ioc_write_chars(self, rb_f_sprintf(argc, argv));
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
- ioc_puts(int argc, VALUE *argv, VALUE self)
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
- ioc_write_chars(self, rb_default_rs);
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
- #if HAVE_RB_CHECK_ARRAY_TYPE
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
- #if HAVE_RB_EXEC_RECURSIVE
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
- ioc_write_chars(self, line);
705
+ rg_write(self, line);
734
706
  if (RSTRING_LEN(line) == 0 ||
735
707
  RSTRING_PTR(line)[RSTRING_LEN(line)-1] != '\n') {
736
- ioc_write_chars(self, rb_default_rs);
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
- ioc_print(int argc, VALUE *argv, VALUE out)
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
- ioc_write_chars(out, rb_output_fs);
729
+ rg_write(out, rb_output_fs);
758
730
  }
759
731
  switch (TYPE(argv[i])) {
760
732
  case T_NIL:
761
- ioc_write_chars(out, rb_str_new2("nil"));
733
+ rg_write(out, rb_str_new2("nil"));
762
734
  break;
763
735
  default:
764
- ioc_write_chars(out, argv[i]);
736
+ rg_write(out, argv[i]);
765
737
  break;
766
738
  }
767
739
  }
768
740
  if (!NIL_P(rb_output_rs)) {
769
- ioc_write_chars(out, rb_output_rs);
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 io = G_DEF_CLASS(G_TYPE_IO_CHANNEL, "IOChannel", mGLib);
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(io, rb_mEnumerable);
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
- rb_define_method(io, "initialize", ioc_initialize, -1);
789
- rb_define_singleton_method(io, "open", ioc_s_open, -1);
790
- rb_define_method(io, "fileno", ioc_get_fd, 0); /* ref: IO#fileno */
791
- rb_define_alias(io, "to_i", "fileno"); /* ref: IO#to_i */
792
- rb_define_method(io, "read", ioc_read_chars, -1); /* ref: IO#read(count = nil) */
793
- rb_define_method(io, "readchar", ioc_read_unichar, 0); /* ref: IO#readchar but this return an UTF-8 char */
794
- rb_define_method(io, "getc", ioc_getuc, 0); /* ref: IO#getc but this return an UTF-8 char */
795
- rb_define_method(io, "readline", ioc_read_line, -1); /* ref: IO#readline(rs = nil) */
796
- rb_define_method(io, "gets", ioc_gets, -1); /* ref: IO#gets(rs = nil) */
797
- rb_define_method(io, "each", ioc_each_line, -1); /* ref: IO#each(rs = nil){|line|...} */
798
- rb_define_alias(io, "each_line", "each"); /* ref: IO#each_line(rs = nil){|line|...} */
799
- rb_define_method(io, "each_char", ioc_each_char, 0); /* ref: IO#each_byte{|line|...} */
800
- rb_define_method(io, "write", ioc_write_chars, 1); /* ref: IO#write(str) */
801
- rb_define_method(io, "printf", ioc_printf, -1); /* ref: IO#printf(...) */
802
- rb_define_method(io, "print", ioc_print, -1); /* ref: IO#print(...) */
803
- rb_define_method(io, "puts", ioc_puts, -1); /* ref: IO#puts(...) */
804
- rb_define_method(io, "putc", ioc_write_unichar, 1); /* ref: IO#putc(ch) but this accept an UTF-8 code */
805
- rb_define_method(io, "flush", ioc_flush, 0); /* ref: IO#flush */
806
- rb_define_method(io, "seek", ioc_seek, -1); /* ref: IO#seek */
807
- rb_define_method(io, "set_pos", ioc_seek_pos, 1); /* ref: IO#pos= */
808
- rb_define_method(io, "close", ioc_shutdown, -1); /* ref: IO#close */
809
- rb_define_method(io, "create_watch", ioc_create_watch, 1);
810
- rb_define_method(io, "add_watch", ioc_add_watch, 1);
811
- rb_define_method(io, "buffer_size", ioc_get_buffer_size, 0);
812
- rb_define_method(io, "set_buffer_size", ioc_set_buffer_size, 1);
813
- rb_define_method(io, "buffer_condition", ioc_get_buffer_condition, 0);
814
- rb_define_method(io, "flags", ioc_get_flags, 0);
815
- rb_define_method(io, "set_flags", ioc_set_flags, 1);
816
- rb_define_method(io, "buffered", ioc_get_buffered, 0);
817
- rb_define_method(io, "set_buffered", ioc_set_buffered, 1);
818
- rb_define_method(io, "encoding", ioc_get_encoding, 0);
819
- rb_define_method(io, "set_encoding", ioc_set_encoding, 1);
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(io, "SEEK_CUR", INT2NUM(G_SEEK_CUR));
838
- rb_define_const(io, "SEEK_SET", INT2NUM(G_SEEK_SET));
839
- rb_define_const(io, "SEEK_END", INT2NUM(G_SEEK_END));
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(io, "STATUS_ERROR", INT2NUM(G_IO_STATUS_ERROR));
843
- rb_define_const(io, "STATUS_NORMAL", INT2NUM(G_IO_STATUS_NORMAL));
844
- rb_define_const(io, "STATUS_EOF", INT2NUM(G_IO_STATUS_EOF));
845
- rb_define_const(io, "STATUS_AGAIN", INT2NUM(G_IO_STATUS_AGAIN));
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(io, "IN", INT2NUM(G_IO_IN));
849
- rb_define_const(io, "OUT", INT2NUM(G_IO_OUT));
850
- rb_define_const(io, "PRI", INT2NUM(G_IO_PRI));
851
- rb_define_const(io, "ERR", INT2NUM(G_IO_ERR));
852
- rb_define_const(io, "HUP", INT2NUM(G_IO_HUP));
853
- rb_define_const(io, "NVAL", INT2NUM(G_IO_NVAL));
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(io, "FLAG_APPEND", INT2NUM(G_IO_FLAG_APPEND));
857
- rb_define_const(io, "FLAG_NONBLOCK", INT2NUM(G_IO_FLAG_NONBLOCK));
858
- rb_define_const(io, "FLAG_READABLE", INT2NUM(G_IO_FLAG_IS_READABLE));
859
- rb_define_const(io, "FLAG_WRITEABLE", INT2NUM(G_IO_FLAG_IS_WRITEABLE));
860
- rb_define_const(io, "FLAG_IS_SEEKABLE", INT2NUM(G_IO_FLAG_IS_SEEKABLE));
861
- rb_define_const(io, "FLAG_MASK", INT2NUM(G_IO_FLAG_MASK));
862
- rb_define_const(io, "FLAG_GET_MASK", INT2NUM(G_IO_FLAG_GET_MASK));
863
- rb_define_const(io, "FLAG_SET_MASK", INT2NUM(G_IO_FLAG_SET_MASK));
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
  }