Hello community, here is the log from the commit of package gtkd for openSUSE:Factory checked in at 2018-04-20 17:26:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gtkd (Old) and /work/SRC/openSUSE:Factory/.gtkd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtkd" Fri Apr 20 17:26:19 2018 rev:2 rq:595109 version:3.7.5 Changes: -------- --- /work/SRC/openSUSE:Factory/gtkd/gtkd.changes 2018-01-30 15:42:42.335361422 +0100 +++ /work/SRC/openSUSE:Factory/.gtkd.new/gtkd.changes 2018-04-20 17:26:31.736938302 +0200 @@ -1,0 +2,9 @@ +Wed Mar 14 21:19:07 UTC 2018 - [email protected] + +- Update to version 3.7.5 + * Check for null when returning an object in gtkd.Implement. + * Handle out parameters correctly in gtkd.Implement. + * Fix building with dmd 2.079. +- Change license to correct one and switch to SPDX-3.0 format. + +------------------------------------------------------------------- Old: ---- gtkd-3.7.3.tar.gz New: ---- gtkd-3.7.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gtkd.spec ++++++ --- /var/tmp/diff_new_pack.59EkhS/_old 2018-04-20 17:26:32.520909873 +0200 +++ /var/tmp/diff_new_pack.59EkhS/_new 2018-04-20 17:26:32.520909873 +0200 @@ -18,15 +18,15 @@ %define gtkd_major 3 %define gtkd_minor 7 -%define gtkd_bugfix 3 +%define gtkd_bugfix 5 %define sover 0 Name: gtkd -Version: 3.7.3 +Version: 3.7.5 Release: 0 Summary: D binding and OO wrapper for GTK+ -License: LGPL-3.0 +License: LGPL-3.0-or-later Group: Development/Libraries/Other -URL: http://gtkd.org/ +Url: http://gtkd.org/ Source: https://github.com/gtkd-developers/GtkD/archive/v%{version}/gtkd-%{version}.tar.gz BuildRequires: dmd BuildRequires: phobos-devel ++++++ gtkd-3.7.3.tar.gz -> gtkd-3.7.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/CHANGELOG new/GtkD-3.7.5/CHANGELOG --- old/GtkD-3.7.3/CHANGELOG 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/CHANGELOG 2018-03-01 19:41:08.000000000 +0100 @@ -1,6 +1,15 @@ GtkD ChangeLog ============== +Release: 3.7.4 +-------------- +-Check for null when returning an object in gtkd.Implement. +-Handle out parameters correctly in gtkd.Implement. + +Release: 3.7.4 +-------------- +-Fix building with dmd 2.079. + Release: 3.7.3 -------------- -Use the Slice allocator to allocate structs. #221 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/GNUmakefile new/GtkD-3.7.5/GNUmakefile --- old/GtkD-3.7.3/GNUmakefile 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/GNUmakefile 2018-03-01 19:41:08.000000000 +0100 @@ -59,7 +59,7 @@ ####################################################################### -GTKD_VERSION=3.7.3 +GTKD_VERSION=3.7.5 SO_VERSION=0 MAJOR = $(word 1,$(subst ., ,$(GTKD_VERSION))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/generated/gtkd/gio/SocketClient.d new/GtkD-3.7.5/generated/gtkd/gio/SocketClient.d --- old/GtkD-3.7.3/generated/gtkd/gio/SocketClient.d 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/generated/gtkd/gio/SocketClient.d 2018-03-01 19:41:08.000000000 +0100 @@ -876,7 +876,7 @@ g_socket_client_set_tls_validation_flags(gSocketClient, flags); } - protected class OnDelegateWrapper + protected class OnEventDelegateWrapper { void delegate(GSocketClientEvent, SocketConnectableIF, IOStream, SocketClient) dlg; gulong handlerId; @@ -884,23 +884,23 @@ this(void delegate(GSocketClientEvent, SocketConnectableIF, IOStream, SocketClient) dlg) { this.dlg = dlg; - onListeners ~= this; + onEventListeners ~= this; } - void remove(OnDelegateWrapper source) + void remove(OnEventDelegateWrapper source) { - foreach(index, wrapper; onListeners) + foreach(index, wrapper; onEventListeners) { if (wrapper.handlerId == source.handlerId) { - onListeners[index] = null; - onListeners = std.algorithm.remove(onListeners, index); + onEventListeners[index] = null; + onEventListeners = std.algorithm.remove(onEventListeners, index); break; } } } } - OnDelegateWrapper[] onListeners; + OnEventDelegateWrapper[] onEventListeners; /** * Emitted when @client's activity on @connectable changes state. @@ -960,25 +960,25 @@ * * Since: 2.32 */ - gulong addOn(void delegate(GSocketClientEvent, SocketConnectableIF, IOStream, SocketClient) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) + gulong addOnEvent(void delegate(GSocketClientEvent, SocketConnectableIF, IOStream, SocketClient) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) { - auto wrapper = new OnDelegateWrapper(dlg); + auto wrapper = new OnEventDelegateWrapper(dlg); wrapper.handlerId = Signals.connectData( this, "event", - cast(GCallback)&callBack, + cast(GCallback)&callBackEvent, cast(void*)wrapper, - cast(GClosureNotify)&callBackDestroy, + cast(GClosureNotify)&callBackEventDestroy, connectFlags); return wrapper.handlerId; } - extern(C) static void callBack(GSocketClient* socketclientStruct, GSocketClientEvent event, GSocketConnectable* connectable, GIOStream* connection, OnDelegateWrapper wrapper) + extern(C) static void callBackEvent(GSocketClient* socketclientStruct, GSocketClientEvent event, GSocketConnectable* connectable, GIOStream* connection, OnEventDelegateWrapper wrapper) { wrapper.dlg(event, ObjectG.getDObject!(SocketConnectableIF)(connectable), ObjectG.getDObject!(IOStream)(connection), wrapper.outer); } - extern(C) static void callBackDestroy(OnDelegateWrapper wrapper, GClosure* closure) + extern(C) static void callBackEventDestroy(OnEventDelegateWrapper wrapper, GClosure* closure) { wrapper.remove(wrapper); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/generated/gtkd/gio/SocketListener.d new/GtkD-3.7.5/generated/gtkd/gio/SocketListener.d --- old/GtkD-3.7.3/generated/gtkd/gio/SocketListener.d 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/generated/gtkd/gio/SocketListener.d 2018-03-01 19:41:08.000000000 +0100 @@ -500,7 +500,7 @@ g_socket_listener_set_backlog(gSocketListener, listenBacklog); } - protected class OnDelegateWrapper + protected class OnEventDelegateWrapper { void delegate(GSocketListenerEvent, Socket, SocketListener) dlg; gulong handlerId; @@ -508,23 +508,23 @@ this(void delegate(GSocketListenerEvent, Socket, SocketListener) dlg) { this.dlg = dlg; - onListeners ~= this; + onEventListeners ~= this; } - void remove(OnDelegateWrapper source) + void remove(OnEventDelegateWrapper source) { - foreach(index, wrapper; onListeners) + foreach(index, wrapper; onEventListeners) { if (wrapper.handlerId == source.handlerId) { - onListeners[index] = null; - onListeners = std.algorithm.remove(onListeners, index); + onEventListeners[index] = null; + onEventListeners = std.algorithm.remove(onEventListeners, index); break; } } } } - OnDelegateWrapper[] onListeners; + OnEventDelegateWrapper[] onEventListeners; /** * Emitted when @listener's activity on @socket changes state. @@ -538,25 +538,25 @@ * * Since: 2.46 */ - gulong addOn(void delegate(GSocketListenerEvent, Socket, SocketListener) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) + gulong addOnEvent(void delegate(GSocketListenerEvent, Socket, SocketListener) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) { - auto wrapper = new OnDelegateWrapper(dlg); + auto wrapper = new OnEventDelegateWrapper(dlg); wrapper.handlerId = Signals.connectData( this, "event", - cast(GCallback)&callBack, + cast(GCallback)&callBackEvent, cast(void*)wrapper, - cast(GClosureNotify)&callBackDestroy, + cast(GClosureNotify)&callBackEventDestroy, connectFlags); return wrapper.handlerId; } - extern(C) static void callBack(GSocketListener* socketlistenerStruct, GSocketListenerEvent event, GSocket* socket, OnDelegateWrapper wrapper) + extern(C) static void callBackEvent(GSocketListener* socketlistenerStruct, GSocketListenerEvent event, GSocket* socket, OnEventDelegateWrapper wrapper) { wrapper.dlg(event, ObjectG.getDObject!(Socket)(socket), wrapper.outer); } - extern(C) static void callBackDestroy(OnDelegateWrapper wrapper, GClosure* closure) + extern(C) static void callBackEventDestroy(OnEventDelegateWrapper wrapper, GClosure* closure) { wrapper.remove(wrapper); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/generated/gtkd/gtk/TextTag.d new/GtkD-3.7.5/generated/gtkd/gtk/TextTag.d --- old/GtkD-3.7.3/generated/gtkd/gtk/TextTag.d 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/generated/gtkd/gtk/TextTag.d 2018-03-01 19:41:08.000000000 +0100 @@ -180,7 +180,7 @@ gtk_text_tag_set_priority(gtkTextTag, priority); } - protected class OnDelegateWrapper + protected class OnEventDelegateWrapper { bool delegate(ObjectG, Event, TextIter, TextTag) dlg; gulong handlerId; @@ -188,23 +188,23 @@ this(bool delegate(ObjectG, Event, TextIter, TextTag) dlg) { this.dlg = dlg; - onListeners ~= this; + onEventListeners ~= this; } - void remove(OnDelegateWrapper source) + void remove(OnEventDelegateWrapper source) { - foreach(index, wrapper; onListeners) + foreach(index, wrapper; onEventListeners) { if (wrapper.handlerId == source.handlerId) { - onListeners[index] = null; - onListeners = std.algorithm.remove(onListeners, index); + onEventListeners[index] = null; + onEventListeners = std.algorithm.remove(onEventListeners, index); break; } } } } - OnDelegateWrapper[] onListeners; + OnEventDelegateWrapper[] onEventListeners; /** * The ::event signal is emitted when an event occurs on a region of the @@ -218,25 +218,25 @@ * Returns: %TRUE to stop other handlers from being invoked for the * event. %FALSE to propagate the event further. */ - gulong addOn(bool delegate(ObjectG, Event, TextIter, TextTag) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) + gulong addOnEvent(bool delegate(ObjectG, Event, TextIter, TextTag) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) { - auto wrapper = new OnDelegateWrapper(dlg); + auto wrapper = new OnEventDelegateWrapper(dlg); wrapper.handlerId = Signals.connectData( this, "event", - cast(GCallback)&callBack, + cast(GCallback)&callBackEvent, cast(void*)wrapper, - cast(GClosureNotify)&callBackDestroy, + cast(GClosureNotify)&callBackEventDestroy, connectFlags); return wrapper.handlerId; } - extern(C) static int callBack(GtkTextTag* texttagStruct, GObject* object, GdkEvent* event, GtkTextIter* iter, OnDelegateWrapper wrapper) + extern(C) static int callBackEvent(GtkTextTag* texttagStruct, GObject* object, GdkEvent* event, GtkTextIter* iter, OnEventDelegateWrapper wrapper) { return wrapper.dlg(ObjectG.getDObject!(ObjectG)(object), ObjectG.getDObject!(Event)(event), ObjectG.getDObject!(TextIter)(iter), wrapper.outer); } - extern(C) static void callBackDestroy(OnDelegateWrapper wrapper, GClosure* closure) + extern(C) static void callBackEventDestroy(OnEventDelegateWrapper wrapper, GClosure* closure) { wrapper.remove(wrapper); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/generated/gtkd/gtk/Widget.d new/GtkD-3.7.5/generated/gtkd/gtk/Widget.d --- old/GtkD-3.7.3/generated/gtkd/gtk/Widget.d 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/generated/gtkd/gtk/Widget.d 2018-03-01 19:41:08.000000000 +0100 @@ -428,6 +428,12 @@ * gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), * FooWidget, goodbye_button); * } + * + * static void + * foo_widget_init (FooWidget *widget) + * { + * + * } * ]| * * You can also use gtk_widget_class_bind_template_callback() to connect a signal @@ -1403,7 +1409,7 @@ * button is held down for some time. Try to save the last event that you got * from the mouse, using gdk_event_copy(), and pass it to this function * (remember to free the event with gdk_event_free() when you are done). - * If you can really not pass a real event, pass #NULL instead. + * If you really cannot pass a real event, pass %NULL instead. * * Params: * targets = The targets (data formats) in which the @@ -2464,7 +2470,7 @@ * Unrealized widgets do not have a frame clock. * * Returns: a #GdkFrameClock, - * or #NULL if widget is unrealized + * or %NULL if widget is unrealized * * Since: 3.8 */ @@ -3349,13 +3355,20 @@ * inside a #GtkSocket within the same application. * * To reliably find the toplevel #GtkWindow, use - * gtk_widget_get_toplevel() and call gtk_widget_is_toplevel() - * on the result. + * gtk_widget_get_toplevel() and call GTK_IS_WINDOW() + * on the result. For instance, to get the title of a widget's toplevel + * window, one might use: * |[<!-- language="C" --> + * static const char * + * get_widget_toplevel_title (GtkWidget *widget) + * { * GtkWidget *toplevel = gtk_widget_get_toplevel (widget); - * if (gtk_widget_is_toplevel (toplevel)) + * if (GTK_IS_WINDOW (toplevel)) * { - * // Perform action on toplevel. + * return gtk_window_get_title (GTK_WINDOW (toplevel)); + * } + * + * return NULL; * } * ]| * @@ -7819,7 +7832,7 @@ wrapper.remove(wrapper); } - protected class OnDelegateWrapper + protected class OnEventDelegateWrapper { bool delegate(Event, Widget) dlg; gulong handlerId; @@ -7827,23 +7840,23 @@ this(bool delegate(Event, Widget) dlg) { this.dlg = dlg; - onListeners ~= this; + onEventListeners ~= this; } - void remove(OnDelegateWrapper source) + void remove(OnEventDelegateWrapper source) { - foreach(index, wrapper; onListeners) + foreach(index, wrapper; onEventListeners) { if (wrapper.handlerId == source.handlerId) { - onListeners[index] = null; - onListeners = std.algorithm.remove(onListeners, index); + onEventListeners[index] = null; + onEventListeners = std.algorithm.remove(onEventListeners, index); break; } } } } - OnDelegateWrapper[] onListeners; + OnEventDelegateWrapper[] onEventListeners; /** * The GTK+ main loop will emit three signals for each GDK event delivered @@ -7861,25 +7874,25 @@ * the second signal. The ::event-after signal is emitted regardless of * the return value. */ - gulong addOn(bool delegate(Event, Widget) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) + gulong addOnEvent(bool delegate(Event, Widget) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) { - auto wrapper = new OnDelegateWrapper(dlg); + auto wrapper = new OnEventDelegateWrapper(dlg); wrapper.handlerId = Signals.connectData( this, "event", - cast(GCallback)&callBack, + cast(GCallback)&callBackEvent, cast(void*)wrapper, - cast(GClosureNotify)&callBackDestroy, + cast(GClosureNotify)&callBackEventDestroy, connectFlags); return wrapper.handlerId; } - extern(C) static int callBack(GtkWidget* widgetStruct, GdkEvent* event, OnDelegateWrapper wrapper) + extern(C) static int callBackEvent(GtkWidget* widgetStruct, GdkEvent* event, OnEventDelegateWrapper wrapper) { return wrapper.dlg(ObjectG.getDObject!(Event)(event), wrapper.outer); } - extern(C) static void callBackDestroy(OnDelegateWrapper wrapper, GClosure* closure) + extern(C) static void callBackEventDestroy(OnEventDelegateWrapper wrapper, GClosure* closure) { wrapper.remove(wrapper); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/generated/gtkd/gtkd/Implement.d new/GtkD-3.7.5/generated/gtkd/gtkd/Implement.d --- old/GtkD-3.7.3/generated/gtkd/gtkd/Implement.d 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/generated/gtkd/gtkd/Implement.d 2018-03-01 19:41:08.000000000 +0100 @@ -433,12 +433,12 @@ if ( (ParamStorage[i] == STC.out_ || ParamStorage[i] == STC.ref_) && isGtkdType!(DParamTypes[i]) ) { result ~= "\tif ( d_"~ ParamNames[i] ~" !is null )\n"~ - "\t\t"~ ParamNames[i] ~" = d_"~ ParamNames[i] ~".get"~ DParamTypes[i].stringof ~"Struct();\n"; + "\t\t*"~ ParamNames[i] ~" = *d_"~ ParamNames[i] ~".get"~ DParamTypes[i].stringof ~"Struct();\n"; } } if ( isGtkdType!(ReturnType!(__traits(getMember, Impl, name))) && isPointer!(ReturnType!Member) ) - result ~= "\treturn ret.get"~ (ReturnType!(__traits(getMember, Impl, name))).stringof ~"Struct();\n"; + result ~= "\treturn ret ? ret.get"~ (ReturnType!(__traits(getMember, Impl, name))).stringof ~"Struct() : null;\n"; else if ( !is(ReturnType!Member == void) ) result ~= "\treturn ret;\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GtkD-3.7.3/src/gtkd/Implement.d new/GtkD-3.7.5/src/gtkd/Implement.d --- old/GtkD-3.7.3/src/gtkd/Implement.d 2017-12-16 17:21:49.000000000 +0100 +++ new/GtkD-3.7.5/src/gtkd/Implement.d 2018-03-01 19:41:08.000000000 +0100 @@ -433,12 +433,12 @@ if ( (ParamStorage[i] == STC.out_ || ParamStorage[i] == STC.ref_) && isGtkdType!(DParamTypes[i]) ) { result ~= "\tif ( d_"~ ParamNames[i] ~" !is null )\n"~ - "\t\t"~ ParamNames[i] ~" = d_"~ ParamNames[i] ~".get"~ DParamTypes[i].stringof ~"Struct();\n"; + "\t\t*"~ ParamNames[i] ~" = *d_"~ ParamNames[i] ~".get"~ DParamTypes[i].stringof ~"Struct();\n"; } } if ( isGtkdType!(ReturnType!(__traits(getMember, Impl, name))) && isPointer!(ReturnType!Member) ) - result ~= "\treturn ret.get"~ (ReturnType!(__traits(getMember, Impl, name))).stringof ~"Struct();\n"; + result ~= "\treturn ret ? ret.get"~ (ReturnType!(__traits(getMember, Impl, name))).stringof ~"Struct() : null;\n"; else if ( !is(ReturnType!Member == void) ) result ~= "\treturn ret;\n";
