glib2 1.0.3-x86-mingw32 → 1.1.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/1.8/glib2.so +0 -0
- data/lib/1.9/glib2.so +0 -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
- data/vendor/local/bin/gdbus.exe +0 -0
- data/vendor/local/bin/gio-querymodules.exe +0 -0
- data/vendor/local/bin/glib-compile-schemas.exe +0 -0
- data/vendor/local/bin/glib-genmarshal.exe +0 -0
- data/vendor/local/bin/glib-gettextize +2 -2
- data/vendor/local/bin/glib-mkenums +1 -1
- data/vendor/local/bin/gobject-query.exe +0 -0
- data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
- data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
- data/vendor/local/bin/libgio-2.0-0.dll +0 -0
- data/vendor/local/bin/libglib-2.0-0.dll +0 -0
- data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
- data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
- data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
- data/vendor/local/etc/bash_completion.d/gdbus-bash-completion.sh +33 -0
- data/vendor/local/etc/bash_completion.d/gsettings-bash-completion.sh +67 -0
- data/vendor/local/include/gio-win32-2.0/gio/gwin32inputstream.h +79 -0
- data/vendor/local/include/gio-win32-2.0/gio/gwin32outputstream.h +78 -0
- data/vendor/local/include/glib-2.0/gio/gapplication.h +13 -7
- data/vendor/local/include/glib-2.0/gio/gioenums.h +16 -5
- data/vendor/local/include/glib-2.0/glib/gconvert.h +2 -0
- data/vendor/local/include/glib-2.0/glib/gdir.h +2 -0
- data/vendor/local/include/glib-2.0/glib/gfileutils.h +2 -0
- data/vendor/local/include/glib-2.0/glib/giochannel.h +1 -1
- data/vendor/local/include/glib-2.0/glib/gspawn.h +2 -0
- data/vendor/local/include/glib-2.0/glib/gutils.h +6 -2
- data/vendor/local/include/glib-2.0/glib/gvarianttype.h +10 -10
- data/vendor/local/include/glib-2.0/gobject/gtype.h +1 -1
- data/vendor/local/include/glib-2.0/gobject/gvalue.h +9 -1
- data/vendor/local/lib/gio-2.0.lib +0 -0
- data/vendor/local/lib/glib-2.0.def +1 -0
- data/vendor/local/lib/glib-2.0.lib +0 -0
- data/vendor/local/lib/glib-2.0/include/glibconfig.h +1 -1
- data/vendor/local/lib/gmodule-2.0.lib +0 -0
- data/vendor/local/lib/gobject-2.0.lib +0 -0
- data/vendor/local/lib/gthread-2.0.lib +0 -0
- data/vendor/local/lib/libgio-2.0.dll.a +0 -0
- data/vendor/local/lib/libglib-2.0.dll.a +0 -0
- data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
- data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
- data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/gio-2.0.pc +1 -1
- data/vendor/local/lib/pkgconfig/gio-windows-2.0.pc +1 -1
- data/vendor/local/lib/pkgconfig/glib-2.0.pc +1 -1
- data/vendor/local/lib/pkgconfig/gmodule-2.0.pc +1 -1
- data/vendor/local/lib/pkgconfig/gmodule-no-export-2.0.pc +1 -1
- data/vendor/local/lib/pkgconfig/gobject-2.0.pc +1 -1
- data/vendor/local/lib/pkgconfig/gthread-2.0.pc +1 -1
- data/vendor/local/manifest/{glib-dev_2.28.1-1_win32.mft → glib-dev_2.28.8-1_win32.mft} +33 -20
- data/vendor/local/manifest/{glib_2.28.1-1_win32.mft → glib_2.28.8-1_win32.mft} +3 -3
- data/vendor/local/share/aclocal/gsettings.m4 +83 -0
- data/vendor/local/share/doc/{glib-2.28.1 → glib-2.28.8}/COPYING +0 -0
- data/vendor/local/share/doc/{glib-dev-2.28.1 → glib-dev-2.28.8}/COPYING +0 -0
- data/vendor/local/share/glib-2.0/gettext/mkinstalldirs +0 -0
- data/vendor/local/share/gtk-doc/html/gio/GAction.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/GActionGroup.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/GApplication.html +115 -32
- data/vendor/local/share/gtk-doc/html/gio/GApplicationCommandLine.html +329 -312
- data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GCancellable.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GCharsetConverter.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GConverter.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GCredentials.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GDBusAuthObserver.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GDBusConnection.html +95 -40
- data/vendor/local/share/gtk-doc/html/gio/GDBusError.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GDBusMessage.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/GDBusMethodInvocation.html +6 -4
- data/vendor/local/share/gtk-doc/html/gio/GDBusProxy.html +21 -11
- data/vendor/local/share/gtk-doc/html/gio/GDBusServer.html +3 -4
- data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GDrive.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GEmblem.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GEmblemedIcon.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFile.html +9 -7
- data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/GFileIOStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFileIcon.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFileInfo.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/GFileInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFileMonitor.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFileOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFilenameCompleter.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GFilterInputStream.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GIOModule.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GIOStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GIcon.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GInetAddress.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GInetSocketAddress.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GInitable.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GLoadableIcon.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GMemoryInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GMemoryOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GMount.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GMountOperation.html +6 -6
- data/vendor/local/share/gtk-doc/html/gio/GNetworkAddress.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GPermission.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GPollableInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GPollableOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GProxy.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GProxyAddress.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GProxyResolver.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GResolver.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSeekable.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSettings.html +11 -4
- data/vendor/local/share/gtk-doc/html/gio/GSettingsBackend.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSimpleAction.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/GSimpleActionGroup.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSimplePermission.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocket.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GSrvTarget.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTcpConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTcpWrapperConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GThemedIcon.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/GThreadedSocketService.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTlsBackend.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTlsCertificate.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTlsClientConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTlsConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GTlsServerConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixConnection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixInputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixOutputStream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GUnixSocketAddress.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GVfs.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GVolume.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GVolumeMonitor.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/annotation-glossary.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-18.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-20.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-22.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-24.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-26.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-28.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-deprecated.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/application.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/async.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/ch01.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch02.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/ch03.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch26.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch27.html +5 -5
- data/vendor/local/share/gtk-doc/html/gio/ch27s02.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch27s03.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch28.html +5 -5
- data/vendor/local/share/gtk-doc/html/gio/ch28s02.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch28s03.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch28s04.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch28s05.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch28s06.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/ch28s07.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch29.html +5 -5
- data/vendor/local/share/gtk-doc/html/gio/ch29s02.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch29s03.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch29s04.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/ch29s05.html +5 -5
- data/vendor/local/share/gtk-doc/html/gio/ch29s06.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/conversion.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/extending.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/failable_initialization.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/file_mon.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/file_ops.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gdbus-convenience.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gdbus-lowlevel.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gdbus.html +9 -9
- data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-Extension-Points.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +6 -5
- data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-GIOScheduler.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-TLS-Overview.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/gio-querymodules.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/gio.devhelp +8 -8
- data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +8 -8
- data/vendor/local/share/gtk-doc/html/gio/glib-compile-schemas.html +7 -5
- data/vendor/local/share/gtk-doc/html/gio/gsettings-tool.html +4 -4
- data/vendor/local/share/gtk-doc/html/gio/highlevel-socket.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/icons.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/index.html +6 -6
- data/vendor/local/share/gtk-doc/html/gio/migrating.html +5 -5
- data/vendor/local/share/gtk-doc/html/gio/networking.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/permissions.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/pt01.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/pt02.html +3 -3
- data/vendor/local/share/gtk-doc/html/gio/resolver.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/settings.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/streaming.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/tls.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/tools.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/types.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/utils.html +2 -2
- data/vendor/local/share/gtk-doc/html/gio/volume_mon.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/annotation-glossary.html +8 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-10.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-12.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-14.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-16.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-18.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-2.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-20.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-22.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-24.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-26.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-28.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-4.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-6.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-8.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-deprecated.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +26 -26
- data/vendor/local/share/gtk-doc/html/glib/glib-Arrays.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Atomic-Operations.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Base64-Encoding.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Basic-Types.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Arrays.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Caches.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +99 -19
- data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Data-Checksums.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Datasets.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-Error-Reporting.html +5 -5
- data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +147 -49
- data/vendor/local/share/gtk-doc/html/glib/glib-GDateTime.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-GTimeZone.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +123 -94
- data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +52 -47
- data/vendor/local/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Hash-Tables.html +4 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-Hook-Functions.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-I18N.html +5 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-IO-Channels.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocation.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocators.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Chunks.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Slices.html +6 -6
- data/vendor/local/share/gtk-doc/html/glib/glib-Message-Logging.html +5 -5
- data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +83 -48
- data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-Quarks.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Random-Numbers.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Sequences.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +6 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Spawning-Processes.html +287 -52
- data/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-String-Chunks.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +19 -14
- data/vendor/local/share/gtk-doc/html/glib/glib-Thread-Pools.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Threads.html +17 -14
- data/vendor/local/share/gtk-doc/html/glib/glib-Timers.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Trash-Stacks.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-URI-Functions.html +16 -8
- data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +6 -6
- data/vendor/local/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-building.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-changes.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/glib-compiling.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/glib-core.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-cross-compiling.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-data-types.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-fundamentals.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib-gettextize.html +5 -5
- data/vendor/local/share/gtk-doc/html/glib/glib-regex-syntax.html +47 -47
- data/vendor/local/share/gtk-doc/html/glib/glib-resources.html +5 -5
- data/vendor/local/share/gtk-doc/html/glib/glib-running.html +8 -8
- data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/glib.devhelp +49 -49
- data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +49 -49
- data/vendor/local/share/gtk-doc/html/glib/glib.html +2 -2
- data/vendor/local/share/gtk-doc/html/glib/gtester-report.html +5 -5
- data/vendor/local/share/gtk-doc/html/glib/gtester.html +5 -5
- data/vendor/local/share/gtk-doc/html/glib/gvariant-format-strings.html +35 -35
- data/vendor/local/share/gtk-doc/html/glib/gvariant-text.html +4 -4
- data/vendor/local/share/gtk-doc/html/glib/index.html +3 -3
- data/vendor/local/share/gtk-doc/html/glib/index.sgml +1 -0
- data/vendor/local/share/gtk-doc/html/glib/tools.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/GBinding.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/GTypeModule.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/GTypePlugin.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/annotation-glossary.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-10.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-12.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-14.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-18.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-2.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-22.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-24.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-26.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-28.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-4.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-6.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-8.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-deprecated.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/api-index-full.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/ch01s02.html +6 -6
- data/vendor/local/share/gtk-doc/html/gobject/ch06s03.html +3 -3
- data/vendor/local/share/gtk-doc/html/gobject/chapter-gobject.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/chapter-gtype.html +4 -4
- data/vendor/local/share/gtk-doc/html/gobject/chapter-intro.html +4 -4
- data/vendor/local/share/gtk-doc/html/gobject/chapter-signal.html +10 -10
- data/vendor/local/share/gtk-doc/html/gobject/glib-genmarshal.html +11 -11
- data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +8 -8
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html +5 -5
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +7 -7
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +8 -3
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +5 -3
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-memory.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gobject-properties.html +6 -6
- data/vendor/local/share/gtk-doc/html/gobject/gobject-query.html +5 -5
- data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp +8 -8
- data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +8 -8
- data/vendor/local/share/gtk-doc/html/gobject/gtype-conventions.html +4 -4
- data/vendor/local/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-chainup.html +4 -4
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-code.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-construction.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-destruction.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-methods.html +5 -5
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject.html +5 -5
- data/vendor/local/share/gtk-doc/html/gobject/howto-interface-implement.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/howto-interface-properties.html +6 -6
- data/vendor/local/share/gtk-doc/html/gobject/howto-interface.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/howto-signals.html +4 -4
- data/vendor/local/share/gtk-doc/html/gobject/index.html +9 -9
- data/vendor/local/share/gtk-doc/html/gobject/pr01.html +3 -3
- data/vendor/local/share/gtk-doc/html/gobject/pt01.html +6 -6
- data/vendor/local/share/gtk-doc/html/gobject/pt02.html +6 -6
- data/vendor/local/share/gtk-doc/html/gobject/pt03.html +3 -3
- data/vendor/local/share/gtk-doc/html/gobject/rn01.html +3 -3
- data/vendor/local/share/gtk-doc/html/gobject/rn02.html +3 -3
- data/vendor/local/share/gtk-doc/html/gobject/signal.html +6 -6
- data/vendor/local/share/gtk-doc/html/gobject/tools-ginspector.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/tools-gob.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/tools-gtkdoc.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/tools-refdb.html +2 -2
- data/vendor/local/share/gtk-doc/html/gobject/tools-vala.html +2 -2
- data/vendor/local/share/locale/af/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/as/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/bg/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ca/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/cs/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/da/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/de/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/es/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/eu/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/fr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ga/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/gl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/gu/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/he/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/hi/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/hu/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/id/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/it/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ja/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ko/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/lt/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/lv/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/mr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/nb/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/nl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pt/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ro/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ru/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sv/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/te/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/tr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ug/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/vi/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/man/man1/gdbus.1 +249 -0
- data/vendor/local/share/man/man1/gio-querymodules.1 +44 -0
- data/vendor/local/share/man/man1/glib-compile-schemas.1 +86 -0
- data/vendor/local/share/man/man1/glib-genmarshal.1 +2 -2
- data/vendor/local/share/man/man1/glib-gettextize.1 +80 -0
- data/vendor/local/share/man/man1/glib-mkenums.1 +2 -2
- data/vendor/local/share/man/man1/gobject-query.1 +2 -2
- data/vendor/local/share/man/man1/gsettings.1 +153 -0
- data/vendor/local/src/dieterv/packaging/glib_2.28.8-1_win32.log +2919 -0
- data/vendor/local/src/dieterv/packaging/glib_2.28.8-1_win32.sh +157 -0
- metadata +45 -13
- data/ChangeLog +0 -3513
- data/vendor/local/src/tml/packaging/glib_2.28.1-1_win32.log +0 -2775
- data/vendor/local/src/tml/packaging/glib_2.28.1-1_win32.sh +0 -62
data/ext/glib2/rbgobj_convert.c
CHANGED
@@ -1,13 +1,23 @@
|
|
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) 2006 Sjoerd Simons, 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 "rbgobject.h"
|
13
23
|
#include "rbgprivate.h"
|
@@ -0,0 +1,109 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2004-2006 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 2002,2003 Masahiro Sakai
|
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
|
+
*/
|
22
|
+
|
23
|
+
#include "rbgprivate.h"
|
24
|
+
#include <ctype.h>
|
25
|
+
|
26
|
+
typedef struct {
|
27
|
+
char *original;
|
28
|
+
char *replacement;
|
29
|
+
} constant_map;
|
30
|
+
|
31
|
+
static GSList *rbgobj_cmap = NULL;
|
32
|
+
|
33
|
+
static gint
|
34
|
+
rbgobj_constant_find(constant_map *a, char *name)
|
35
|
+
{
|
36
|
+
return strcmp(a->original, name);
|
37
|
+
}
|
38
|
+
|
39
|
+
void
|
40
|
+
rbgobj_constant_remap(const char *original, const char *replacement)
|
41
|
+
{
|
42
|
+
constant_map *map = g_new(constant_map,1);
|
43
|
+
|
44
|
+
map->original = g_strdup(original);
|
45
|
+
map->replacement = g_strdup(replacement);
|
46
|
+
|
47
|
+
rbgobj_cmap = g_slist_append(rbgobj_cmap, map);
|
48
|
+
}
|
49
|
+
|
50
|
+
char *
|
51
|
+
rg_obj_constant_lookup(const char *name)
|
52
|
+
{
|
53
|
+
GSList *p = rbgobj_cmap;
|
54
|
+
|
55
|
+
p = g_slist_find_custom(rbgobj_cmap, name,
|
56
|
+
(GCompareFunc)rbgobj_constant_find);
|
57
|
+
if (p) {
|
58
|
+
char *replacement;
|
59
|
+
constant_map *map;
|
60
|
+
|
61
|
+
map = (constant_map *)p->data;
|
62
|
+
rbgobj_cmap = g_slist_delete_link(rbgobj_cmap, p);
|
63
|
+
replacement = map->replacement;
|
64
|
+
|
65
|
+
g_free(map->original);
|
66
|
+
g_free(map);
|
67
|
+
|
68
|
+
return replacement;
|
69
|
+
}
|
70
|
+
|
71
|
+
return NULL;
|
72
|
+
}
|
73
|
+
|
74
|
+
void
|
75
|
+
rbgobj_define_const(VALUE mod, const char *name,
|
76
|
+
VALUE value)
|
77
|
+
{
|
78
|
+
if (name[0] >= 'A' && name[0] <= 'Z') {
|
79
|
+
rb_define_const(mod, name, value);
|
80
|
+
} else {
|
81
|
+
char *new_name = rg_obj_constant_lookup(name);
|
82
|
+
|
83
|
+
if (new_name) {
|
84
|
+
rb_define_const(mod, new_name, value);
|
85
|
+
g_free(new_name);
|
86
|
+
} else {
|
87
|
+
rb_warn("Invalid constant name '%s' - skipped", name);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
void
|
93
|
+
rbgobj_add_constants(VALUE mod, GType type, const gchar *strip_prefix)
|
94
|
+
{
|
95
|
+
if (G_TYPE_IS_ENUM(type)) {
|
96
|
+
rg_enum_add_constants(mod, type, strip_prefix);
|
97
|
+
} else if (G_TYPE_IS_FLAGS(type)) {
|
98
|
+
rg_flags_add_constants(mod, type, strip_prefix);
|
99
|
+
} else {
|
100
|
+
g_warning("`%s' is not an enum/flags type", g_type_name(type));
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
void
|
105
|
+
Init_gobject_genumflags(void)
|
106
|
+
{
|
107
|
+
Init_gobject_genums();
|
108
|
+
Init_gobject_gflags();
|
109
|
+
}
|
data/ext/glib2/rbgobj_enums.c
CHANGED
@@ -1,35 +1,37 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2004-2006 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 2002,2003 Masahiro Sakai
|
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
|
#include <ctype.h>
|
16
25
|
|
17
|
-
|
26
|
+
#define RG_TARGET_NAMESPACE rbgobj_cEnum
|
27
|
+
|
28
|
+
VALUE RG_TARGET_NAMESPACE;
|
18
29
|
|
19
30
|
static ID id_new;
|
20
|
-
static ID id_module_eval;
|
21
31
|
static ID id_to_s;
|
22
|
-
static ID id_or;
|
23
32
|
|
24
33
|
/**********************************************************************/
|
25
34
|
|
26
|
-
typedef struct {
|
27
|
-
char *original;
|
28
|
-
char *replacement;
|
29
|
-
} constant_map;
|
30
|
-
|
31
|
-
static GSList *rbgobj_cmap = NULL;
|
32
|
-
|
33
35
|
static gchar *
|
34
36
|
nick_to_const_name(const gchar *nick)
|
35
37
|
{
|
@@ -49,8 +51,8 @@ nick_to_const_name(const gchar *nick)
|
|
49
51
|
return const_name;
|
50
52
|
}
|
51
53
|
|
52
|
-
|
53
|
-
|
54
|
+
VALUE
|
55
|
+
rg_enum_resolve_value(VALUE klass, VALUE nick)
|
54
56
|
{
|
55
57
|
VALUE value = Qnil;
|
56
58
|
gchar *const_nick;
|
@@ -70,98 +72,8 @@ resolve_enum_value(VALUE klass, VALUE nick)
|
|
70
72
|
return value;
|
71
73
|
}
|
72
74
|
|
73
|
-
static VALUE
|
74
|
-
resolve_flags_value(VALUE klass, VALUE nick_or_nicks)
|
75
|
-
{
|
76
|
-
int i, len;
|
77
|
-
VALUE flags_value;
|
78
|
-
|
79
|
-
if (!RVAL2CBOOL(rb_obj_is_kind_of(nick_or_nicks, rb_cArray)))
|
80
|
-
return resolve_enum_value(klass, nick_or_nicks);
|
81
|
-
|
82
|
-
len = RARRAY_LEN(nick_or_nicks);
|
83
|
-
flags_value = rb_funcall(klass, id_new, 0);
|
84
|
-
for (i = 0; i < len; i++) {
|
85
|
-
VALUE value;
|
86
|
-
|
87
|
-
value = resolve_enum_value(klass, RARRAY_PTR(nick_or_nicks)[i]);
|
88
|
-
if (NIL_P(value))
|
89
|
-
return Qnil;
|
90
|
-
|
91
|
-
flags_value = rb_funcall(flags_value, id_or, 1, value);
|
92
|
-
}
|
93
|
-
|
94
|
-
return flags_value;
|
95
|
-
}
|
96
|
-
|
97
|
-
static gint
|
98
|
-
rbgobj_constant_find(constant_map *a, char *name)
|
99
|
-
{
|
100
|
-
return strcmp(a->original, name);
|
101
|
-
}
|
102
|
-
|
103
75
|
void
|
104
|
-
|
105
|
-
{
|
106
|
-
constant_map *map = g_new(constant_map,1);
|
107
|
-
|
108
|
-
map -> original = g_strdup(original);
|
109
|
-
map -> replacement = g_strdup(replacement);
|
110
|
-
|
111
|
-
rbgobj_cmap = g_slist_append(rbgobj_cmap, map);
|
112
|
-
}
|
113
|
-
|
114
|
-
static char *
|
115
|
-
rbgobj_constant_lookup(const char *name)
|
116
|
-
{
|
117
|
-
GSList *p = rbgobj_cmap;
|
118
|
-
|
119
|
-
p = g_slist_find_custom(rbgobj_cmap, name,
|
120
|
-
(GCompareFunc)rbgobj_constant_find);
|
121
|
-
if (p)
|
122
|
-
{
|
123
|
-
char *replacement;
|
124
|
-
constant_map *map;
|
125
|
-
|
126
|
-
map = (constant_map*) p -> data;
|
127
|
-
rbgobj_cmap = g_slist_delete_link(rbgobj_cmap, p);
|
128
|
-
replacement = map -> replacement;
|
129
|
-
|
130
|
-
g_free(map -> original);
|
131
|
-
g_free(map);
|
132
|
-
|
133
|
-
return replacement;
|
134
|
-
}
|
135
|
-
return NULL;
|
136
|
-
}
|
137
|
-
|
138
|
-
void
|
139
|
-
rbgobj_define_const(VALUE mod, const char *name,
|
140
|
-
VALUE value)
|
141
|
-
{
|
142
|
-
if (name[0] >= 'A' && name[0] <= 'Z')
|
143
|
-
{
|
144
|
-
rb_define_const(mod, name, value);
|
145
|
-
}
|
146
|
-
else
|
147
|
-
{
|
148
|
-
char *new_name = rbgobj_constant_lookup(name);
|
149
|
-
|
150
|
-
if (new_name)
|
151
|
-
{
|
152
|
-
rb_define_const(mod, new_name, value);
|
153
|
-
g_free(new_name);
|
154
|
-
}
|
155
|
-
else
|
156
|
-
{
|
157
|
-
rb_warn("Invalid constant name '%s' - skipped", name);
|
158
|
-
}
|
159
|
-
}
|
160
|
-
}
|
161
|
-
|
162
|
-
static void
|
163
|
-
rbgobj_enum_add_constants(VALUE mod, GType enum_type,
|
164
|
-
const gchar *strip_prefix)
|
76
|
+
rg_enum_add_constants(VALUE mod, GType enum_type, const gchar *strip_prefix)
|
165
77
|
{
|
166
78
|
GEnumClass *gclass;
|
167
79
|
guint i;
|
@@ -185,45 +97,6 @@ rbgobj_enum_add_constants(VALUE mod, GType enum_type,
|
|
185
97
|
g_type_class_unref(gclass);
|
186
98
|
}
|
187
99
|
|
188
|
-
static void
|
189
|
-
rbgobj_flags_add_constants(VALUE mod, GType flags_type,
|
190
|
-
const gchar *strip_prefix)
|
191
|
-
{
|
192
|
-
GFlagsClass *gclass;
|
193
|
-
guint i;
|
194
|
-
int prefix_len = strlen(strip_prefix);
|
195
|
-
|
196
|
-
gclass = G_FLAGS_CLASS(g_type_class_ref(flags_type));
|
197
|
-
|
198
|
-
for (i = 0; i < gclass->n_values; i++) {
|
199
|
-
const GFlagsValue* value = &gclass->values[i];
|
200
|
-
|
201
|
-
if (strncmp(value->value_name, strip_prefix, prefix_len)) {
|
202
|
-
g_warning("\"%s\" doesn't have prefix \"%s\"",
|
203
|
-
value->value_name, strip_prefix);
|
204
|
-
} else {
|
205
|
-
const char* name = value->value_name + prefix_len;
|
206
|
-
rbgobj_define_const(mod, name,
|
207
|
-
rbgobj_make_flags(value->value, flags_type));
|
208
|
-
|
209
|
-
}
|
210
|
-
}
|
211
|
-
|
212
|
-
g_type_class_unref(gclass);
|
213
|
-
}
|
214
|
-
|
215
|
-
void
|
216
|
-
rbgobj_add_constants(VALUE mod, GType type, const gchar *strip_prefix)
|
217
|
-
{
|
218
|
-
if (G_TYPE_IS_ENUM(type)) {
|
219
|
-
rbgobj_enum_add_constants(mod, type, strip_prefix);
|
220
|
-
} else if (G_TYPE_IS_FLAGS(type)) {
|
221
|
-
rbgobj_flags_add_constants(mod, type, strip_prefix);
|
222
|
-
} else {
|
223
|
-
g_warning("`%s' is not an enum/flags type", g_type_name(type));
|
224
|
-
}
|
225
|
-
}
|
226
|
-
|
227
100
|
/**********************************************************************/
|
228
101
|
|
229
102
|
typedef struct {
|
@@ -267,7 +140,7 @@ rbgobj_get_enum(VALUE obj, GType gtype)
|
|
267
140
|
if (!g_type_is_a(gtype, G_TYPE_ENUM))
|
268
141
|
rb_raise(rb_eTypeError, "%s is not a %s: %s",
|
269
142
|
g_type_name(gtype), g_type_name(G_TYPE_ENUM),
|
270
|
-
|
143
|
+
RBG_INSPECT(obj));
|
271
144
|
|
272
145
|
/* for compatibility */
|
273
146
|
if (rb_obj_is_kind_of(obj, rb_cInteger))
|
@@ -278,7 +151,7 @@ rbgobj_get_enum(VALUE obj, GType gtype)
|
|
278
151
|
if (!rb_obj_is_kind_of(obj, klass)) {
|
279
152
|
VALUE enum_value;
|
280
153
|
|
281
|
-
enum_value =
|
154
|
+
enum_value = rg_enum_resolve_value(klass, obj);
|
282
155
|
if (!NIL_P(enum_value))
|
283
156
|
obj = enum_value;
|
284
157
|
}
|
@@ -287,7 +160,7 @@ rbgobj_get_enum(VALUE obj, GType gtype)
|
|
287
160
|
return enum_get_holder(obj)->value;
|
288
161
|
else
|
289
162
|
rb_raise(rb_eTypeError, "not a %s: %s",
|
290
|
-
|
163
|
+
rb_class2name(klass), RBG_INSPECT(obj));
|
291
164
|
}
|
292
165
|
|
293
166
|
/**********************************************************************/
|
@@ -310,7 +183,7 @@ rbgobj_init_enum_class(VALUE klass)
|
|
310
183
|
if (rb_is_const_id(id)) {
|
311
184
|
VALUE value;
|
312
185
|
|
313
|
-
|
186
|
+
value = make_enum(entry->value, klass);
|
314
187
|
rb_define_const(klass, const_nick_name, value);
|
315
188
|
}
|
316
189
|
}
|
@@ -319,7 +192,7 @@ rbgobj_init_enum_class(VALUE klass)
|
|
319
192
|
if (const_nick_name) {
|
320
193
|
VALUE value;
|
321
194
|
|
322
|
-
|
195
|
+
value = make_enum(entry->value, klass);
|
323
196
|
rbgobj_define_const(klass, const_nick_name, value);
|
324
197
|
}
|
325
198
|
}
|
@@ -332,7 +205,7 @@ rbgobj_init_enum_class(VALUE klass)
|
|
332
205
|
}
|
333
206
|
|
334
207
|
static VALUE
|
335
|
-
|
208
|
+
rg_s_range(VALUE self)
|
336
209
|
{
|
337
210
|
GEnumClass* gclass = g_type_class_ref(CLASS2GTYPE(self));
|
338
211
|
VALUE result = rb_range_new(INT2NUM(gclass->minimum),
|
@@ -369,7 +242,7 @@ enum_s_values_ensure(VALUE gclass)
|
|
369
242
|
}
|
370
243
|
|
371
244
|
static VALUE
|
372
|
-
|
245
|
+
rg_s_values(VALUE self)
|
373
246
|
{
|
374
247
|
struct enum_s_values_body_args args = {
|
375
248
|
g_type_class_ref(CLASS2GTYPE(self)),
|
@@ -397,7 +270,7 @@ enum_s_allocate(VALUE self)
|
|
397
270
|
}
|
398
271
|
|
399
272
|
static VALUE
|
400
|
-
|
273
|
+
rg_initialize(VALUE self, VALUE arg)
|
401
274
|
{
|
402
275
|
enum_holder* p = enum_get_holder(self);
|
403
276
|
|
@@ -417,28 +290,28 @@ enum_initialize(VALUE self, VALUE arg)
|
|
417
290
|
}
|
418
291
|
|
419
292
|
static VALUE
|
420
|
-
|
293
|
+
rg_to_i(VALUE self)
|
421
294
|
{
|
422
295
|
enum_holder* p = enum_get_holder(self);
|
423
296
|
return INT2NUM(p->value);
|
424
297
|
}
|
425
298
|
|
426
299
|
static VALUE
|
427
|
-
|
300
|
+
rg_name(VALUE self)
|
428
301
|
{
|
429
302
|
enum_holder* p = enum_get_holder(self);
|
430
303
|
return p->info ? rb_str_new2(p->info->value_name) : Qnil;
|
431
304
|
}
|
432
305
|
|
433
306
|
static VALUE
|
434
|
-
|
307
|
+
rg_nick(VALUE self)
|
435
308
|
{
|
436
309
|
enum_holder* p = enum_get_holder(self);
|
437
310
|
return p->info ? rb_str_new2(p->info->value_nick) : Qnil;
|
438
311
|
}
|
439
312
|
|
440
313
|
static VALUE
|
441
|
-
|
314
|
+
rg_inspect(VALUE self)
|
442
315
|
{
|
443
316
|
const char* cname = rb_class2name(CLASS_OF(self));
|
444
317
|
enum_holder* p = enum_get_holder(self);
|
@@ -458,25 +331,29 @@ enum_inspect(VALUE self)
|
|
458
331
|
}
|
459
332
|
|
460
333
|
static VALUE
|
461
|
-
|
334
|
+
rg_operator_enum_eqv(VALUE self, VALUE rhs)
|
462
335
|
{
|
463
336
|
enum_holder* p = enum_get_holder(self);
|
464
337
|
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
465
|
-
|
466
|
-
|
467
|
-
|
338
|
+
VALUE klass = GTYPE2CLASS(gtype);
|
339
|
+
|
340
|
+
if (!rb_obj_is_kind_of(rhs, rb_cInteger)) {
|
341
|
+
rhs = rg_enum_resolve_value(klass, rhs);
|
342
|
+
if (CLASS_OF(rhs) != CLASS_OF(self))
|
343
|
+
return Qnil;
|
344
|
+
}
|
468
345
|
return CBOOL2RVAL(rbgobj_get_enum(self, gtype) == rbgobj_get_enum(rhs, gtype));
|
469
346
|
}
|
470
347
|
|
471
348
|
static VALUE
|
472
|
-
|
349
|
+
rg_hash(VALUE self)
|
473
350
|
{
|
474
351
|
enum_holder* p = enum_get_holder(self);
|
475
352
|
return UINT2NUM(p->value ^ G_TYPE_FROM_CLASS(p->gclass));
|
476
353
|
}
|
477
354
|
|
478
355
|
static VALUE
|
479
|
-
|
356
|
+
rg_coerce(VALUE self, VALUE other)
|
480
357
|
{
|
481
358
|
enum_holder *holder;
|
482
359
|
GType gtype;
|
@@ -490,491 +367,35 @@ enum_coerce(VALUE self, VALUE other)
|
|
490
367
|
return rb_ary_new3(2, other, self);
|
491
368
|
}
|
492
369
|
|
493
|
-
static void
|
494
|
-
Init_enum()
|
495
|
-
{
|
496
|
-
VALUE cEnum;
|
497
|
-
|
498
|
-
rbgobj_cEnum = G_DEF_CLASS(G_TYPE_ENUM, "Enum", mGLib);
|
499
|
-
cEnum = rbgobj_cEnum;
|
500
|
-
|
501
|
-
rb_define_singleton_method(cEnum, "gtype", generic_s_gtype, 0);
|
502
|
-
rb_define_method(cEnum, "gtype", generic_gtype, 0);
|
503
|
-
|
504
|
-
rb_define_singleton_method(cEnum, "range", enum_s_range, 0);
|
505
|
-
rb_define_singleton_method(cEnum, "values", enum_s_values, 0);
|
506
|
-
|
507
|
-
rb_define_alloc_func(cEnum, enum_s_allocate);
|
508
|
-
|
509
|
-
rb_define_method(cEnum, "initialize", enum_initialize, 1);
|
510
|
-
rb_define_method(cEnum, "to_i", enum_to_i, 0);
|
511
|
-
rb_define_method(cEnum, "name", enum_name, 0);
|
512
|
-
rb_define_method(cEnum, "nick", enum_nick, 0);
|
513
|
-
|
514
|
-
rb_define_method(cEnum, "inspect", enum_inspect, 0);
|
515
|
-
rb_define_method(cEnum, "==", enum_eqv, 1);
|
516
|
-
rb_define_method(cEnum, "hash", enum_hash, 0);
|
517
|
-
rb_define_method(cEnum, "eql?", enum_eqv, 1);
|
518
|
-
|
519
|
-
/* for compatibility */
|
520
|
-
rb_define_method(cEnum, "coerce", enum_coerce, 1);
|
521
|
-
rb_define_alias(cEnum, "to_int", "to_i");
|
522
|
-
}
|
523
|
-
|
524
|
-
/**********************************************************************/
|
525
|
-
|
526
|
-
typedef struct {
|
527
|
-
GFlagsClass* gclass;
|
528
|
-
guint value;
|
529
|
-
GFlagsValue* info;
|
530
|
-
} flags_holder;
|
531
|
-
|
532
|
-
static void
|
533
|
-
flags_free(enum_holder* p)
|
534
|
-
{
|
535
|
-
g_type_class_unref(p->gclass);
|
536
|
-
free(p);
|
537
|
-
}
|
538
|
-
|
539
|
-
static flags_holder*
|
540
|
-
flags_get_holder(VALUE obj)
|
541
|
-
{
|
542
|
-
flags_holder* p;
|
543
|
-
Data_Get_Struct(obj, flags_holder, p);
|
544
|
-
return p;
|
545
|
-
}
|
546
|
-
|
547
|
-
static VALUE
|
548
|
-
make_flags(guint n, VALUE klass)
|
549
|
-
{
|
550
|
-
return rb_funcall(klass, id_new, 1, UINT2NUM(n));
|
551
|
-
}
|
552
|
-
|
553
|
-
VALUE
|
554
|
-
rbgobj_make_flags(guint n, GType gtype)
|
555
|
-
{
|
556
|
-
return make_flags(n, GTYPE2CLASS(gtype));
|
557
|
-
}
|
558
|
-
|
559
|
-
guint
|
560
|
-
rbgobj_get_flags(VALUE obj, GType gtype)
|
561
|
-
{
|
562
|
-
VALUE klass;
|
563
|
-
|
564
|
-
if (!g_type_is_a(gtype, G_TYPE_FLAGS))
|
565
|
-
rb_raise(rb_eTypeError, "%s is not a %s",
|
566
|
-
g_type_name(gtype), g_type_name(G_TYPE_FLAGS));
|
567
|
-
|
568
|
-
/* for compatibility */
|
569
|
-
if (rb_obj_is_kind_of(obj, rb_cInteger))
|
570
|
-
obj = rbgobj_make_flags(NUM2UINT(obj), gtype);
|
571
|
-
|
572
|
-
klass = GTYPE2CLASS(gtype);
|
573
|
-
|
574
|
-
if (!rb_obj_is_kind_of(obj, klass)) {
|
575
|
-
VALUE flags_value = Qnil;
|
576
|
-
|
577
|
-
flags_value = resolve_flags_value(klass, obj);
|
578
|
-
if (!NIL_P(flags_value))
|
579
|
-
obj = flags_value;
|
580
|
-
}
|
581
|
-
|
582
|
-
if (rb_obj_is_kind_of(obj, klass))
|
583
|
-
return flags_get_holder(obj)->value;
|
584
|
-
else
|
585
|
-
rb_raise(rb_eTypeError, "not a %s: %s",
|
586
|
-
rb_class2name(klass), RBG_INSPECT(obj));
|
587
|
-
}
|
588
|
-
|
589
370
|
/**********************************************************************/
|
590
371
|
|
591
372
|
void
|
592
|
-
|
593
|
-
{
|
594
|
-
GFlagsClass* gclass = g_type_class_ref(CLASS2GTYPE(klass));
|
595
|
-
GString* source = g_string_new(NULL);
|
596
|
-
guint i;
|
597
|
-
|
598
|
-
for (i = 0; i < gclass->n_values; i++) {
|
599
|
-
GFlagsValue* entry = &(gclass->values[i]);
|
600
|
-
gchar* nick;
|
601
|
-
gchar* p;
|
602
|
-
gchar* replace_nick;
|
603
|
-
|
604
|
-
replace_nick = rbgobj_constant_lookup(entry->value_nick);
|
605
|
-
if (replace_nick){
|
606
|
-
nick = g_strdup(replace_nick);
|
607
|
-
} else {
|
608
|
-
nick = g_strdup(entry->value_nick);
|
609
|
-
}
|
610
|
-
|
611
|
-
for (p = nick; *p; p++)
|
612
|
-
if (*p == '-' || *p == ' ')
|
613
|
-
*p = '_';
|
614
|
-
else
|
615
|
-
*p = tolower(*p);
|
616
|
-
|
617
|
-
g_string_append_printf(
|
618
|
-
source,
|
619
|
-
"def %s%s?; self >= self.class.new(%d); end\n",
|
620
|
-
g_ascii_isdigit(nick[0]) ? "_" : "",
|
621
|
-
nick, entry->value);
|
622
|
-
|
623
|
-
for (p = nick; *p; p++)
|
624
|
-
*p = g_ascii_toupper(*p);
|
625
|
-
|
626
|
-
#if 0
|
627
|
-
{
|
628
|
-
ID id = rb_intern(nick);
|
629
|
-
if (rb_is_const_id(id)) {
|
630
|
-
rb_define_const(klass, nick, make_flags(entry->value, klass));
|
631
|
-
}
|
632
|
-
}
|
633
|
-
#else
|
634
|
-
{
|
635
|
-
rbgobj_define_const(klass, nick, make_flags(entry->value, klass));
|
636
|
-
}
|
637
|
-
#endif
|
638
|
-
|
639
|
-
g_free(nick);
|
640
|
-
}
|
641
|
-
|
642
|
-
rb_funcall(klass, id_module_eval, 1, rb_str_new2(source->str));
|
643
|
-
g_string_free(source, TRUE);
|
644
|
-
|
645
|
-
g_type_class_unref(gclass);
|
646
|
-
}
|
647
|
-
|
648
|
-
static VALUE
|
649
|
-
flags_s_mask(VALUE klass)
|
650
|
-
{
|
651
|
-
GFlagsClass* gclass = g_type_class_ref(CLASS2GTYPE(klass));
|
652
|
-
VALUE result = UINT2NUM(gclass->mask);
|
653
|
-
g_type_class_unref(gclass);
|
654
|
-
return result;
|
655
|
-
}
|
656
|
-
|
657
|
-
static VALUE
|
658
|
-
flags_s_values(VALUE klass)
|
373
|
+
Init_gobject_genums(void)
|
659
374
|
{
|
660
|
-
|
661
|
-
|
662
|
-
guint i;
|
663
|
-
|
664
|
-
gclass = g_type_class_ref(CLASS2GTYPE(klass));
|
665
|
-
result = rb_ary_new();
|
666
|
-
for (i = 0; i < gclass->n_values; i++) {
|
667
|
-
GFlagsValue *p = &(gclass->values[i]);
|
668
|
-
rb_ary_push(result, make_flags(p->value, klass));
|
669
|
-
}
|
670
|
-
g_type_class_unref(gclass);
|
671
|
-
|
672
|
-
return result;
|
673
|
-
}
|
674
|
-
|
675
|
-
static VALUE
|
676
|
-
flags_s_allocate(VALUE self)
|
677
|
-
{
|
678
|
-
GType gtype = CLASS2GTYPE(self);
|
679
|
-
|
680
|
-
if (G_TYPE_IS_ABSTRACT(gtype)) {
|
681
|
-
rb_raise(rb_eTypeError, "abstract class");
|
682
|
-
} else {
|
683
|
-
flags_holder* p;
|
684
|
-
VALUE result = Data_Make_Struct(self, flags_holder, NULL, flags_free, p);
|
685
|
-
p->gclass = g_type_class_ref(gtype);
|
686
|
-
p->value = 0;
|
687
|
-
p->info = NULL;
|
688
|
-
return result;
|
689
|
-
}
|
690
|
-
}
|
691
|
-
|
692
|
-
static VALUE
|
693
|
-
flags_initialize(int argc, VALUE* argv, VALUE self)
|
694
|
-
{
|
695
|
-
flags_holder* p = flags_get_holder(self);
|
696
|
-
VALUE arg;
|
697
|
-
|
698
|
-
rb_scan_args(argc, argv, "01", &arg);
|
699
|
-
|
700
|
-
if (argc == 0) {
|
701
|
-
p->value = 0;
|
702
|
-
} else {
|
703
|
-
if (rb_respond_to(arg, rb_intern("to_str"))) {
|
704
|
-
const char* str = StringValuePtr(arg);
|
705
|
-
p->info = g_flags_get_value_by_name(p->gclass, str);
|
706
|
-
if (!p->info)
|
707
|
-
p->info = g_flags_get_value_by_nick(p->gclass, str);
|
708
|
-
if (!p->info)
|
709
|
-
rb_raise(rb_eArgError, "invalid argument");
|
710
|
-
p->value = p->info->value;
|
711
|
-
} else {
|
712
|
-
p->value = NUM2UINT(arg);
|
713
|
-
}
|
714
|
-
}
|
715
|
-
|
716
|
-
if (!p->info) {
|
717
|
-
guint i;
|
718
|
-
for (i = 0; i < p->gclass->n_values; i++){
|
719
|
-
GFlagsValue* val = &(p->gclass->values[i]);
|
720
|
-
if (val->value == p->value){
|
721
|
-
p->info = val;
|
722
|
-
break;
|
723
|
-
}
|
724
|
-
}
|
725
|
-
}
|
726
|
-
|
727
|
-
return Qnil;
|
728
|
-
}
|
729
|
-
|
730
|
-
static VALUE
|
731
|
-
flags_to_i(VALUE self)
|
732
|
-
{
|
733
|
-
flags_holder* p = flags_get_holder(self);
|
734
|
-
return UINT2NUM(p->value);
|
735
|
-
}
|
736
|
-
|
737
|
-
static VALUE
|
738
|
-
flags_name(VALUE self)
|
739
|
-
{
|
740
|
-
flags_holder* p = flags_get_holder(self);
|
741
|
-
return p->info ? rb_str_new2(p->info->value_name) : Qnil;
|
742
|
-
}
|
743
|
-
|
744
|
-
static VALUE
|
745
|
-
flags_nick(VALUE self)
|
746
|
-
{
|
747
|
-
flags_holder* p = flags_get_holder(self);
|
748
|
-
return p->info ? rb_str_new2(p->info->value_nick) : Qnil;
|
749
|
-
}
|
750
|
-
|
751
|
-
static VALUE
|
752
|
-
flags_compare(VALUE self, VALUE rhs)
|
753
|
-
{
|
754
|
-
flags_holder* p = flags_get_holder(self);
|
755
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
756
|
-
guint rhs_val;
|
757
|
-
|
758
|
-
if (CLASS_OF(rhs) != CLASS_OF(self) &&
|
759
|
-
!rb_obj_is_kind_of(rhs, rb_cInteger))
|
760
|
-
return Qnil;
|
761
|
-
|
762
|
-
rhs_val = rbgobj_get_flags(rhs, gtype);
|
763
|
-
|
764
|
-
if (p->value == rhs_val)
|
765
|
-
return INT2FIX(0);
|
766
|
-
else if ((p->value & rhs_val) == rhs_val)
|
767
|
-
return INT2FIX(1);
|
768
|
-
else if ((p->value & rhs_val) == p->value)
|
769
|
-
return INT2FIX(-1);
|
770
|
-
else
|
771
|
-
return Qnil;
|
772
|
-
}
|
773
|
-
|
774
|
-
static VALUE
|
775
|
-
flags_eqv(VALUE self, VALUE rhs)
|
776
|
-
{
|
777
|
-
flags_holder* p = flags_get_holder(self);
|
778
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
779
|
-
guint rhs_val;
|
780
|
-
|
781
|
-
if (CLASS_OF(rhs) != CLASS_OF(self) &&
|
782
|
-
!rb_obj_is_kind_of(rhs, rb_cInteger))
|
783
|
-
return Qnil;
|
784
|
-
|
785
|
-
rhs_val = rbgobj_get_flags(rhs, gtype);
|
786
|
-
return CBOOL2RVAL(p->value == rhs_val);
|
787
|
-
}
|
788
|
-
|
789
|
-
static VALUE
|
790
|
-
flags_gt_eq(VALUE self, VALUE rhs)
|
791
|
-
{
|
792
|
-
flags_holder* p = flags_get_holder(self);
|
793
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
794
|
-
guint rhs_val;
|
795
|
-
|
796
|
-
if (CLASS_OF(rhs) != CLASS_OF(self) &&
|
797
|
-
!rb_obj_is_kind_of(rhs, rb_cInteger))
|
798
|
-
return Qnil;
|
799
|
-
|
800
|
-
rhs_val = rbgobj_get_flags(rhs, gtype);
|
801
|
-
return CBOOL2RVAL((p->value & rhs_val) == rhs_val);
|
802
|
-
}
|
803
|
-
|
804
|
-
static VALUE
|
805
|
-
flags_lt_eq(VALUE self, VALUE rhs)
|
806
|
-
{
|
807
|
-
flags_holder* p = flags_get_holder(self);
|
808
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
809
|
-
guint rhs_val;
|
810
|
-
|
811
|
-
if (CLASS_OF(rhs) != CLASS_OF(self) &&
|
812
|
-
!rb_obj_is_kind_of(rhs, rb_cInteger))
|
813
|
-
return Qnil;
|
814
|
-
|
815
|
-
rhs_val = rbgobj_get_flags(rhs, gtype);
|
816
|
-
return CBOOL2RVAL((p->value & rhs_val) == p->value);
|
817
|
-
}
|
818
|
-
|
819
|
-
static VALUE
|
820
|
-
flags_gt(VALUE self, VALUE rhs)
|
821
|
-
{
|
822
|
-
flags_holder* p = flags_get_holder(self);
|
823
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
824
|
-
guint rhs_val;
|
825
|
-
|
826
|
-
if (CLASS_OF(rhs) != CLASS_OF(self) &&
|
827
|
-
!rb_obj_is_kind_of(rhs, rb_cInteger))
|
828
|
-
return Qnil;
|
829
|
-
|
830
|
-
rhs_val = rbgobj_get_flags(rhs, gtype);
|
831
|
-
return CBOOL2RVAL((p->value & rhs_val) == rhs_val &&
|
832
|
-
p->value != rhs_val);
|
833
|
-
}
|
834
|
-
|
835
|
-
static VALUE
|
836
|
-
flags_lt(VALUE self, VALUE rhs)
|
837
|
-
{
|
838
|
-
flags_holder* p = flags_get_holder(self);
|
839
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
840
|
-
guint rhs_val;
|
841
|
-
|
842
|
-
if (CLASS_OF(rhs) != CLASS_OF(self) &&
|
843
|
-
!rb_obj_is_kind_of(rhs, rb_cInteger))
|
844
|
-
return Qnil;
|
845
|
-
|
846
|
-
rhs_val = rbgobj_get_flags(rhs, gtype);
|
847
|
-
return CBOOL2RVAL((p->value & rhs_val) == p->value &&
|
848
|
-
p->value != rhs_val);
|
849
|
-
}
|
850
|
-
|
851
|
-
static VALUE
|
852
|
-
flags_not(VALUE self, VALUE rhs)
|
853
|
-
{
|
854
|
-
flags_holder* p = flags_get_holder(self);
|
855
|
-
return rbgobj_make_flags((~ p->value) & p->gclass->mask,
|
856
|
-
G_TYPE_FROM_CLASS(p->gclass));
|
857
|
-
}
|
858
|
-
|
859
|
-
#define LIFT_BINARY_OP(funcname, op) \
|
860
|
-
static VALUE \
|
861
|
-
funcname(VALUE self, VALUE rhs) \
|
862
|
-
{ \
|
863
|
-
flags_holder* p = flags_get_holder(self); \
|
864
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass); \
|
865
|
-
return rbgobj_make_flags(p->value op rbgobj_get_flags(rhs, gtype), \
|
866
|
-
gtype); \
|
867
|
-
}
|
868
|
-
|
869
|
-
LIFT_BINARY_OP(flags_and, &)
|
870
|
-
LIFT_BINARY_OP(flags_or, |)
|
871
|
-
LIFT_BINARY_OP(flags_xor, ^)
|
872
|
-
|
873
|
-
static VALUE
|
874
|
-
flags_minus(VALUE self, VALUE rhs)
|
875
|
-
{
|
876
|
-
flags_holder* p = flags_get_holder(self);
|
877
|
-
GType gtype = G_TYPE_FROM_CLASS(p->gclass);
|
878
|
-
return rbgobj_make_flags(p->value & ~rbgobj_get_flags(rhs, gtype),
|
879
|
-
gtype);
|
880
|
-
}
|
881
|
-
|
882
|
-
static VALUE
|
883
|
-
flags_empty_p(VALUE self)
|
884
|
-
{
|
885
|
-
flags_holder* p = flags_get_holder(self);
|
886
|
-
return CBOOL2RVAL(p->value == 0);
|
887
|
-
}
|
888
|
-
|
889
|
-
static VALUE
|
890
|
-
flags_hash(VALUE self)
|
891
|
-
{
|
892
|
-
flags_holder* p = flags_get_holder(self);
|
893
|
-
return UINT2NUM(p->value ^ G_TYPE_FROM_CLASS(p->gclass));
|
894
|
-
}
|
895
|
-
|
896
|
-
static VALUE
|
897
|
-
flags_coerce(VALUE self, VALUE other)
|
898
|
-
{
|
899
|
-
flags_holder *holder;
|
900
|
-
GType gtype;
|
901
|
-
|
902
|
-
if (rb_obj_is_kind_of(other, rb_cInteger))
|
903
|
-
rb_raise(rb_eTypeError, "can't coerce");
|
904
|
-
|
905
|
-
holder = flags_get_holder(self);
|
906
|
-
gtype = G_TYPE_FROM_CLASS(holder->gclass);
|
907
|
-
other = rbgobj_make_flags(NUM2UINT(other), gtype);
|
908
|
-
return rb_ary_new3(2, other, self);
|
909
|
-
}
|
910
|
-
|
911
|
-
static VALUE
|
912
|
-
flags_nonzero_p(VALUE self)
|
913
|
-
{
|
914
|
-
flags_holder* p = flags_get_holder(self);
|
915
|
-
return CBOOL2RVAL(p->value != 0);
|
916
|
-
}
|
917
|
-
|
918
|
-
static void
|
919
|
-
Init_flags()
|
920
|
-
{
|
921
|
-
VALUE cFlags;
|
922
|
-
|
923
|
-
rbgobj_cFlags = G_DEF_CLASS(G_TYPE_FLAGS, "Flags", mGLib);
|
924
|
-
cFlags = rbgobj_cFlags;
|
925
|
-
|
926
|
-
rb_define_singleton_method(cFlags, "gtype", generic_s_gtype, 0);
|
927
|
-
rb_define_method(cFlags, "gtype", generic_gtype, 0);
|
928
|
-
|
929
|
-
rb_define_singleton_method(cFlags, "mask", flags_s_mask, 0);
|
930
|
-
rb_define_singleton_method(cFlags, "values", flags_s_values, 0);
|
931
|
-
|
932
|
-
rb_define_alloc_func(cFlags, flags_s_allocate);
|
375
|
+
id_new = rb_intern("new");
|
376
|
+
id_to_s = rb_intern("to_s");
|
933
377
|
|
934
|
-
|
378
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_ENUM, "Enum", mGLib);
|
935
379
|
|
936
|
-
|
937
|
-
|
938
|
-
rb_define_method(cFlags, "name", flags_name, 0);
|
939
|
-
rb_define_method(cFlags, "nick", flags_nick, 0);
|
380
|
+
rb_define_singleton_method(RG_TARGET_NAMESPACE, "gtype", generic_s_gtype, 0);
|
381
|
+
rb_define_method(RG_TARGET_NAMESPACE, "gtype", generic_gtype, 0);
|
940
382
|
|
941
|
-
|
942
|
-
|
943
|
-
*/
|
383
|
+
RG_DEF_SMETHOD(range, 0);
|
384
|
+
RG_DEF_SMETHOD(values, 0);
|
944
385
|
|
945
|
-
|
946
|
-
rb_define_method(cFlags, "==", flags_eqv, 1);
|
947
|
-
rb_define_method(cFlags, ">=", flags_gt_eq, 1);
|
948
|
-
rb_define_method(cFlags, "<=", flags_lt_eq, 1);
|
949
|
-
rb_define_method(cFlags, ">", flags_gt, 1);
|
950
|
-
rb_define_method(cFlags, "<", flags_lt, 1);
|
951
|
-
rb_define_method(cFlags, "~", flags_not, 0);
|
952
|
-
rb_define_method(cFlags, "&", flags_and, 1);
|
953
|
-
rb_define_method(cFlags, "|", flags_or, 1);
|
954
|
-
rb_define_method(cFlags, "^", flags_xor, 1);
|
955
|
-
rb_define_method(cFlags, "-", flags_minus, 1);
|
386
|
+
rb_define_alloc_func(RG_TARGET_NAMESPACE, enum_s_allocate);
|
956
387
|
|
957
|
-
|
388
|
+
RG_DEF_METHOD(initialize, 1);
|
389
|
+
RG_DEF_METHOD(to_i, 0);
|
390
|
+
RG_DEF_METHOD(name, 0);
|
391
|
+
RG_DEF_METHOD(nick, 0);
|
958
392
|
|
959
|
-
|
960
|
-
|
393
|
+
RG_DEF_METHOD(inspect, 0);
|
394
|
+
RG_DEF_METHOD_OPERATOR("==", enum_eqv, 1);
|
395
|
+
RG_DEF_METHOD(hash, 0);
|
396
|
+
RG_DEF_ALIAS("eql?", "==");
|
961
397
|
|
962
398
|
/* for compatibility */
|
963
|
-
|
964
|
-
|
965
|
-
rb_define_method(cFlags, "nonzero?", flags_nonzero_p, 0);
|
966
|
-
}
|
967
|
-
|
968
|
-
/**********************************************************************/
|
969
|
-
|
970
|
-
void
|
971
|
-
Init_gobject_genums()
|
972
|
-
{
|
973
|
-
id_module_eval = rb_intern("module_eval");
|
974
|
-
id_new = rb_intern("new");
|
975
|
-
id_to_s = rb_intern("to_s");
|
976
|
-
id_or = rb_intern("|");
|
977
|
-
|
978
|
-
Init_enum();
|
979
|
-
Init_flags();
|
399
|
+
RG_DEF_METHOD(coerce, 1);
|
400
|
+
RG_DEF_ALIAS("to_int", "to_i");
|
980
401
|
}
|