diff options
| -rw-r--r-- | gtk/ScintillaGTK.cxx | 20 | ||||
| -rw-r--r-- | gtk/deps.mak | 2 | ||||
| -rw-r--r-- | gtk/makefile | 3 | ||||
| -rw-r--r-- | gtk/scintilla-marshal.c | 86 | ||||
| -rw-r--r-- | gtk/scintilla-marshal.h | 21 | ||||
| -rw-r--r-- | gtk/scintilla-marshal.list | 1 | ||||
| -rw-r--r-- | include/Scintilla.h | 9 | ||||
| -rw-r--r-- | include/ScintillaWidget.h | 8 | ||||
| -rw-r--r-- | test/gi/Scintilla-0.1.gir.good | 219 | ||||
| -rw-r--r-- | test/gi/filter-scintilla-h.py | 19 | ||||
| -rw-r--r-- | test/gi/gi-test.py | 9 | ||||
| -rw-r--r-- | test/gi/makefile | 20 | 
12 files changed, 136 insertions, 281 deletions
| diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 3caab96a4..9fc8e4cc4 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -72,6 +72,8 @@  #include "ExternalLexer.h"  #endif +#include "scintilla-marshal.h" +  #include "Converter.h"  #if defined(__clang__) @@ -3160,6 +3162,9 @@ void ScintillaGTK::ClassInit(OBJECT_CLASS* object_class, GtkWidgetClass *widget_  	container_class->forall = MainForAll;  } +#define SIG_MARSHAL scintilla_marshal_NONE__INT_POINTER +#define MARSHAL_ARGUMENTS G_TYPE_INT, G_TYPE_POINTER +  static void scintilla_class_init(ScintillaClass *klass) {  	try {  		OBJECT_CLASS *object_class = (OBJECT_CLASS*) klass; @@ -3174,9 +3179,9 @@ static void scintilla_class_init(ScintillaClass *klass) {  		            G_STRUCT_OFFSET(ScintillaClass, command),  		            NULL, //(GSignalAccumulator)  		            NULL, //(gpointer) -		            NULL, +		            SIG_MARSHAL,  		            G_TYPE_NONE, -		            2, G_TYPE_INT, GTK_TYPE_WIDGET); +		            2, MARSHAL_ARGUMENTS);  		scintilla_signals[NOTIFY_SIGNAL] = g_signal_new(  		            SCINTILLA_NOTIFY, @@ -3185,9 +3190,9 @@ static void scintilla_class_init(ScintillaClass *klass) {  		            G_STRUCT_OFFSET(ScintillaClass, notify),  		            NULL,  		            NULL, -		            NULL, +		            SIG_MARSHAL,  		            G_TYPE_NONE, -		            2, G_TYPE_INT, SCINTILLA_TYPE_NOTIFICATION); +		            2, MARSHAL_ARGUMENTS);  		klass->command = NULL;  		klass->notify = NULL; @@ -3228,10 +3233,3 @@ void scintilla_release_resources(void) {  	} catch (...) {  	}  } - -/* Define a dummy boxed type because g-ir-scanner is unable to - * recognize gpointer-derived types. Note that SCNotificaiton - * is always allocated on stack so copying is not appropriate. */ -static void        *copy_(void *src) { return src; } -static void         free_(void *doc) { } -G_DEFINE_BOXED_TYPE(SCNotification, scnotification, copy_, free_) diff --git a/gtk/deps.mak b/gtk/deps.mak index f59ef3282..5b826358a 100644 --- a/gtk/deps.mak +++ b/gtk/deps.mak @@ -15,7 +15,7 @@ ScintillaGTK.o: ScintillaGTK.cxx \   ../src/Selection.h ../src/PositionCache.h ../src/EditModel.h \   ../src/MarginView.h ../src/EditView.h ../src/Editor.h \   ../src/AutoComplete.h ../src/ScintillaBase.h ../src/ExternalLexer.h \ - Converter.h + scintilla-marshal.h Converter.h  AutoComplete.o: ../src/AutoComplete.cxx ../include/Platform.h \   ../include/Scintilla.h ../include/Sci_Position.h \   ../lexlib/CharacterSet.h ../src/Position.h ../src/AutoComplete.h diff --git a/gtk/makefile b/gtk/makefile index a4d46d9a0..8fd92f6db 100644 --- a/gtk/makefile +++ b/gtk/makefile @@ -78,6 +78,7 @@ CFLAGS:=$(CTFLAGS)  CXXTFLAGS:=--std=gnu++0x $(CTFLAGS) $(REFLAGS)  CONFIGFLAGS:=$(shell pkg-config --cflags $(GTKVERSION)) +MARSHALLER=scintilla-marshal.o  .cxx.o:  	$(CXX) $(CONFIGFLAGS) $(CXXTFLAGS) $(CXXFLAGS) -c $< @@ -103,7 +104,7 @@ $(COMPLIB): Accessor.o CharacterSet.o LexerBase.o LexerModule.o LexerSimple.o St  	PropSetSimple.o PlatGTK.o \  	KeyMap.o LineMarker.o PositionCache.o ScintillaGTK.o CellBuffer.o CharacterCategory.o ViewStyle.o \  	RESearch.o RunStyles.o Selection.o Style.o Indicator.o AutoComplete.o UniConversion.o XPM.o \ -	$(LEXOBJS) +	$(MARSHALLER) $(LEXOBJS)  	$(AR) rc $@ $^  	$(RANLIB) $@ diff --git a/gtk/scintilla-marshal.c b/gtk/scintilla-marshal.c new file mode 100644 index 000000000..be57b7c2e --- /dev/null +++ b/gtk/scintilla-marshal.c @@ -0,0 +1,86 @@ + +#include	<glib-object.h> + + +#ifdef G_ENABLE_DEBUG +#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v) +#define g_marshal_value_peek_char(v)     g_value_get_char (v) +#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v) +#define g_marshal_value_peek_int(v)      g_value_get_int (v) +#define g_marshal_value_peek_uint(v)     g_value_get_uint (v) +#define g_marshal_value_peek_long(v)     g_value_get_long (v) +#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v) +#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v) +#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v) +#define g_marshal_value_peek_enum(v)     g_value_get_enum (v) +#define g_marshal_value_peek_flags(v)    g_value_get_flags (v) +#define g_marshal_value_peek_float(v)    g_value_get_float (v) +#define g_marshal_value_peek_double(v)   g_value_get_double (v) +#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v) +#define g_marshal_value_peek_param(v)    g_value_get_param (v) +#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v) +#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v) +#define g_marshal_value_peek_object(v)   g_value_get_object (v) +#else /* !G_ENABLE_DEBUG */ +/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. + *          Do not access GValues directly in your code. Instead, use the + *          g_value_get_*() functions + */ +#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int +#define g_marshal_value_peek_char(v)     (v)->data[0].v_int +#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint +#define g_marshal_value_peek_int(v)      (v)->data[0].v_int +#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint +#define g_marshal_value_peek_long(v)     (v)->data[0].v_long +#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong +#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64 +#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64 +#define g_marshal_value_peek_enum(v)     (v)->data[0].v_int +#define g_marshal_value_peek_flags(v)    (v)->data[0].v_uint +#define g_marshal_value_peek_float(v)    (v)->data[0].v_float +#define g_marshal_value_peek_double(v)   (v)->data[0].v_double +#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer +#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer +#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer +#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer +#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer +#endif /* !G_ENABLE_DEBUG */ + + +/* NONE:INT,POINTER (scintilla-marshal.list:1) */ +void +scintilla_marshal_VOID__INT_POINTER (GClosure     *closure, +                                     GValue       *return_value, +                                     guint         n_param_values, +                                     const GValue *param_values, +                                     gpointer      invocation_hint, +                                     gpointer      marshal_data) +{ +  typedef void (*GMarshalFunc_VOID__INT_POINTER) (gpointer     data1, +                                                  gint         arg_1, +                                                  gpointer     arg_2, +                                                  gpointer     data2); +  register GMarshalFunc_VOID__INT_POINTER callback; +  register GCClosure *cc = (GCClosure*) closure; +  register gpointer data1, data2; + +  g_return_if_fail (n_param_values == 3); + +  if (G_CCLOSURE_SWAP_DATA (closure)) +    { +      data1 = closure->data; +      data2 = g_value_peek_pointer (param_values + 0); +    } +  else +    { +      data1 = g_value_peek_pointer (param_values + 0); +      data2 = closure->data; +    } +  callback = (GMarshalFunc_VOID__INT_POINTER) (marshal_data ? marshal_data : cc->callback); + +  callback (data1, +            g_marshal_value_peek_int (param_values + 1), +            g_marshal_value_peek_pointer (param_values + 2), +            data2); +} + diff --git a/gtk/scintilla-marshal.h b/gtk/scintilla-marshal.h new file mode 100644 index 000000000..9116a56c9 --- /dev/null +++ b/gtk/scintilla-marshal.h @@ -0,0 +1,21 @@ + +#ifndef __scintilla_marshal_MARSHAL_H__ +#define __scintilla_marshal_MARSHAL_H__ + +#include	<glib-object.h> + +G_BEGIN_DECLS + +/* NONE:INT,POINTER (scintilla-marshal.list:1) */ +extern void scintilla_marshal_VOID__INT_POINTER (GClosure     *closure, +                                                 GValue       *return_value, +                                                 guint         n_param_values, +                                                 const GValue *param_values, +                                                 gpointer      invocation_hint, +                                                 gpointer      marshal_data); +#define scintilla_marshal_NONE__INT_POINTER	scintilla_marshal_VOID__INT_POINTER + +G_END_DECLS + +#endif /* __scintilla_marshal_MARSHAL_H__ */ + diff --git a/gtk/scintilla-marshal.list b/gtk/scintilla-marshal.list new file mode 100644 index 000000000..e5750ecb6 --- /dev/null +++ b/gtk/scintilla-marshal.list @@ -0,0 +1 @@ +NONE:INT,POINTER diff --git a/include/Scintilla.h b/include/Scintilla.h index 99bc6e7b1..c985cea77 100644 --- a/include/Scintilla.h +++ b/include/Scintilla.h @@ -1121,13 +1121,6 @@ struct Sci_RangeToFormat {  #define RangeToFormat Sci_RangeToFormat -#ifndef __cplusplus -/* For the GTK+ platform, g-ir-scanner needs to have these typedefs. This - * is not required in C++ code and actually seems to break ScintillaEditPy */ -typedef struct Sci_NotifyHeader Sci_NotifyHeader; -typedef struct SCNotification SCNotification; -#endif -  struct Sci_NotifyHeader {  	/* Compatible with Windows NMHDR.  	 * hwndFrom is really an environment specific window handle or pointer @@ -1140,7 +1133,7 @@ struct Sci_NotifyHeader {  #define NotifyHeader Sci_NotifyHeader  struct SCNotification { -	Sci_NotifyHeader nmhdr; +	struct Sci_NotifyHeader nmhdr;  	Sci_Position position;  	/* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */  	/* SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, */ diff --git a/include/ScintillaWidget.h b/include/ScintillaWidget.h index 1721f65d9..f4ae18208 100644 --- a/include/ScintillaWidget.h +++ b/include/ScintillaWidget.h @@ -38,18 +38,14 @@ struct _ScintillaObject {  struct _ScintillaClass {  	GtkContainerClass parent_class; -	void (* command) (ScintillaObject *sci, int cmd, GtkWidget *window); -	void (* notify) (ScintillaObject *sci, int id, SCNotification *scn); +	void (* command) (ScintillaObject *ttt); +	void (* notify) (ScintillaObject *ttt);  };  GType		scintilla_object_get_type		(void);  GtkWidget*	scintilla_object_new			(void);  gintptr		scintilla_object_send_message	(ScintillaObject *sci, unsigned int iMessage, guintptr wParam, gintptr lParam); - -GType		scnotification_get_type			(void); -#define SCINTILLA_TYPE_NOTIFICATION        (scnotification_get_type()) -  #ifndef G_IR_SCANNING  /* The legacy names confuse the g-ir-scanner program */  typedef struct _ScintillaClass  ScintillaClass; diff --git a/test/gi/Scintilla-0.1.gir.good b/test/gi/Scintilla-0.1.gir.good index 771edae6e..b3919a725 100644 --- a/test/gi/Scintilla-0.1.gir.good +++ b/test/gi/Scintilla-0.1.gir.good @@ -14,24 +14,6 @@ and/or use gtk-doc annotations.  -->               shared-library="libscintilla.so"               c:identifier-prefixes="Scintilla"               c:symbol-prefixes="scintilla"> -    <alias name="Sci_Position" c:type="Sci_Position"> -      <type name="gint" c:type="int"/> -    </alias> -    <alias name="Sci_PositionCR" c:type="Sci_PositionCR"> -      <type name="glong" c:type="long"/> -    </alias> -    <alias name="Sci_PositionU" c:type="Sci_PositionU"> -      <type name="guint" c:type="unsigned int"/> -    </alias> -    <alias name="Sci_SurfaceID" c:type="Sci_SurfaceID"> -      <type name="gpointer" c:type="gpointer"/> -    </alias> -    <alias name="sptr_t" c:type="sptr_t"> -      <type name="glong" c:type="long"/> -    </alias> -    <alias name="uptr_t" c:type="uptr_t"> -      <type name="gulong" c:type="unsigned long"/> -    </alias>      <constant name="NOTIFY" value="sci-notify" c:type="SCINTILLA_NOTIFY">        <type name="utf8" c:type="gchar*"/>      </constant> @@ -54,15 +36,9 @@ and/or use gtk-doc annotations.  -->            <type name="none" c:type="void"/>          </return-value>          <parameters> -          <instance-parameter name="sci" transfer-ownership="none"> +          <instance-parameter name="ttt" transfer-ownership="none">              <type name="Object" c:type="ScintillaObject*"/>            </instance-parameter> -          <parameter name="cmd" transfer-ownership="none"> -            <type name="gint" c:type="int"/> -          </parameter> -          <parameter name="window" transfer-ownership="none"> -            <type name="Gtk.Widget" c:type="GtkWidget*"/> -          </parameter>          </parameters>        </virtual-method>        <virtual-method name="notify"> @@ -70,15 +46,9 @@ and/or use gtk-doc annotations.  -->            <type name="none" c:type="void"/>          </return-value>          <parameters> -          <instance-parameter name="sci" transfer-ownership="none"> +          <instance-parameter name="ttt" transfer-ownership="none">              <type name="Object" c:type="ScintillaObject*"/>            </instance-parameter> -          <parameter name="id" transfer-ownership="none"> -            <type name="gint" c:type="int"/> -          </parameter> -          <parameter name="scn" transfer-ownership="none"> -            <type name="SCNotification" c:type="SCNotification*"/> -          </parameter>          </parameters>        </virtual-method>        <method name="send_message" c:identifier="scintilla_object_send_message"> @@ -115,7 +85,7 @@ and/or use gtk-doc annotations.  -->              <type name="gint" c:type="gint"/>            </parameter>            <parameter name="p0" transfer-ownership="none"> -            <type name="Gtk.Widget"/> +            <type name="gpointer" c:type="gpointer"/>            </parameter>          </parameters>        </glib:signal> @@ -128,7 +98,7 @@ and/or use gtk-doc annotations.  -->              <type name="gint" c:type="gint"/>            </parameter>            <parameter name="p0" transfer-ownership="none"> -            <type name="SCNotification"/> +            <type name="gpointer" c:type="gpointer"/>            </parameter>          </parameters>        </glib:signal> @@ -145,15 +115,9 @@ and/or use gtk-doc annotations.  -->              <type name="none" c:type="void"/>            </return-value>            <parameters> -            <parameter name="sci" transfer-ownership="none"> +            <parameter name="ttt" transfer-ownership="none">                <type name="Object" c:type="ScintillaObject*"/>              </parameter> -            <parameter name="cmd" transfer-ownership="none"> -              <type name="gint" c:type="int"/> -            </parameter> -            <parameter name="window" transfer-ownership="none"> -              <type name="Gtk.Widget" c:type="GtkWidget*"/> -            </parameter>            </parameters>          </callback>        </field> @@ -163,183 +127,12 @@ and/or use gtk-doc annotations.  -->              <type name="none" c:type="void"/>            </return-value>            <parameters> -            <parameter name="sci" transfer-ownership="none"> +            <parameter name="ttt" transfer-ownership="none">                <type name="Object" c:type="ScintillaObject*"/>              </parameter> -            <parameter name="id" transfer-ownership="none"> -              <type name="gint" c:type="int"/> -            </parameter> -            <parameter name="scn" transfer-ownership="none"> -              <type name="SCNotification" c:type="SCNotification*"/> -            </parameter>            </parameters>          </callback>        </field>      </record> -    <record name="SCNotification" -            c:type="SCNotification" -            glib:type-name="SCNotification" -            glib:get-type="scnotification_get_type" -            c:symbol-prefix="scnotification"> -      <field name="nmhdr" writable="1"> -        <type name="Sci_NotifyHeader" c:type="Sci_NotifyHeader"/> -      </field> -      <field name="position" writable="1"> -        <type name="Sci_Position" c:type="Sci_Position"/> -      </field> -      <field name="ch" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="modifiers" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="modificationType" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="text" writable="1"> -        <type name="utf8" c:type="const char*"/> -      </field> -      <field name="length" writable="1"> -        <type name="Sci_Position" c:type="Sci_Position"/> -      </field> -      <field name="linesAdded" writable="1"> -        <type name="Sci_Position" c:type="Sci_Position"/> -      </field> -      <field name="message" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="wParam" writable="1"> -        <type name="uptr_t" c:type="uptr_t"/> -      </field> -      <field name="lParam" writable="1"> -        <type name="sptr_t" c:type="sptr_t"/> -      </field> -      <field name="line" writable="1"> -        <type name="Sci_Position" c:type="Sci_Position"/> -      </field> -      <field name="foldLevelNow" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="foldLevelPrev" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="margin" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="listType" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="x" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="y" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="token" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="annotationLinesAdded" writable="1"> -        <type name="Sci_Position" c:type="Sci_Position"/> -      </field> -      <field name="updated" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="listCompletionMethod" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -    </record> -    <callback name="SciFnDirect"> -      <return-value transfer-ownership="none"> -        <type name="sptr_t" c:type="sptr_t"/> -      </return-value> -      <parameters> -        <parameter name="ptr" transfer-ownership="none"> -          <type name="sptr_t" c:type="sptr_t"/> -        </parameter> -        <parameter name="iMessage" transfer-ownership="none"> -          <type name="guint" c:type="unsigned int"/> -        </parameter> -        <parameter name="wParam" transfer-ownership="none"> -          <type name="uptr_t" c:type="uptr_t"/> -        </parameter> -        <parameter name="lParam" transfer-ownership="none"> -          <type name="sptr_t" c:type="sptr_t"/> -        </parameter> -      </parameters> -    </callback> -    <record name="Sci_CharacterRange" c:type="Sci_CharacterRange"> -      <field name="cpMin" writable="1"> -        <type name="Sci_PositionCR" c:type="Sci_PositionCR"/> -      </field> -      <field name="cpMax" writable="1"> -        <type name="Sci_PositionCR" c:type="Sci_PositionCR"/> -      </field> -    </record> -    <record name="Sci_NotifyHeader" c:type="Sci_NotifyHeader"> -      <field name="hwndFrom" writable="1"> -        <type name="gpointer" c:type="void*"/> -      </field> -      <field name="idFrom" writable="1"> -        <type name="uptr_t" c:type="uptr_t"/> -      </field> -      <field name="code" writable="1"> -        <type name="guint" c:type="unsigned"/> -      </field> -    </record> -    <record name="Sci_RangeToFormat" c:type="Sci_RangeToFormat"> -      <field name="hdc" writable="1"> -        <type name="Sci_SurfaceID" c:type="Sci_SurfaceID"/> -      </field> -      <field name="hdcTarget" writable="1"> -        <type name="Sci_SurfaceID" c:type="Sci_SurfaceID"/> -      </field> -      <field name="rc" writable="1"> -        <type name="gpointer" c:type="Sci_Rectangle"/> -      </field> -      <field name="rcPage" writable="1"> -        <type name="gpointer" c:type="Sci_Rectangle"/> -      </field> -      <field name="chrg" writable="1"> -        <type name="gpointer" c:type="Sci_CharacterRange"/> -      </field> -    </record> -    <record name="Sci_Rectangle" c:type="Sci_Rectangle"> -      <field name="left" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="top" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="right" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -      <field name="bottom" writable="1"> -        <type name="gint" c:type="int"/> -      </field> -    </record> -    <record name="Sci_TextRange" c:type="Sci_TextRange"> -      <field name="chrg" writable="1"> -        <type name="gpointer" c:type="Sci_CharacterRange"/> -      </field> -      <field name="lpstrText" writable="1"> -        <type name="utf8" c:type="char*"/> -      </field> -    </record> -    <record name="Sci_TextToFind" c:type="Sci_TextToFind"> -      <field name="chrg" writable="1"> -        <type name="gpointer" c:type="Sci_CharacterRange"/> -      </field> -      <field name="lpstrText" writable="1"> -        <type name="utf8" c:type="const char*"/> -      </field> -      <field name="chrgText" writable="1"> -        <type name="gpointer" c:type="Sci_CharacterRange"/> -      </field> -    </record> -    <function name="Scintilla_LinkLexers" c:identifier="Scintilla_LinkLexers"> -      <return-value transfer-ownership="none"> -        <type name="gint" c:type="int"/> -      </return-value> -    </function>    </namespace>  </repository> diff --git a/test/gi/filter-scintilla-h.py b/test/gi/filter-scintilla-h.py deleted file mode 100644 index 0743f9ef2..000000000 --- a/test/gi/filter-scintilla-h.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python -# Filters Scintilla.h to not contain generated stuff or deprecated defines - -import sys -import fileinput - -def main(): -    inhibit = 0 -    for line in fileinput.input(): -        if line.startswith("/* ++Autogenerated") or line.startswith("#ifdef INCLUDE_DEPRECATED_FEATURES"): -            inhibit += 1 -        if inhibit == 0: -            sys.stdout.write(line) -        if line.startswith("/* --Autogenerated") or line.startswith("#endif"): -            if (inhibit > 0): -                inhibit -= 1 - -if __name__ == "__main__": -    main() diff --git a/test/gi/gi-test.py b/test/gi/gi-test.py index b047ecec9..6c775ea0c 100644 --- a/test/gi/gi-test.py +++ b/test/gi/gi-test.py @@ -8,18 +8,9 @@ gi.require_version('Scintilla', '0.1')  from gi.repository import Scintilla  from gi.repository import Gtk -def on_notify(sci, id, scn): -    if (scn.nmhdr.code == 2001): # SCN_CHARADDED -        print ("sci-notify: id: %d, char added: %d" % (id, scn.ch)) -    elif (scn.nmhdr.code == 2008): # SCN_MODIFIED -        print ("sci-notify: id: %d, pos: %d, mod type: %d" % (id, scn.position, scn.modificationType)) -    else: -        print ("sci-notify: id: %d, scn.nmhdr.code: %d" % (id, scn.nmhdr.code)) -  win = Gtk.Window()  win.connect("delete-event", Gtk.main_quit)  sci = Scintilla.Object() -sci.connect("sci-notify", on_notify)  win.add(sci)  win.show_all()  win.resize(400,300) diff --git a/test/gi/makefile b/test/gi/makefile index 8b01de341..cf7522303 100644 --- a/test/gi/makefile +++ b/test/gi/makefile @@ -12,26 +12,20 @@ GTK_LIBS = $(shell pkg-config --libs gtk+-$(GTKVERSION))  GTK_CFLAGS = $(shell pkg-config --cflags gtk+-$(GTKVERSION))  PWD = $(shell pwd) -.PHONY: test clean FORCE +FORCE:  ../../bin/scintilla.a: FORCE  	$(MAKE) -C ../../gtk all -Scintilla-filtered.h: ../../include/Scintilla.h -	python filter-scintilla-h.py $< > $@ -  libscintilla.so: ../../bin/scintilla.a  	$(CXX) -shared -o $@ -Wl,--whole-archive $^ -Wl,--no-whole-archive $(GTK_LIBS) -Scintilla-0.1.gir: libscintilla.so Scintilla-filtered.h +Scintilla-0.1.gir: libscintilla.so  	LDFLAGS=-Wl,-rpath=$(shell pwd) \ -		$(GI_SCANNER) --no-libtool --warn-all -i Gtk-$(GTKVERSION) -DG_IR_SCANNING -DGTK \ -		--cflags-begin $(GTK_CFLAGS) -include gtk/gtk.h \ -		-include Scintilla-filtered.h -I../../include --cflags-end \ -		--accept-unprefixed \ +		$(GI_SCANNER) --warn-all -i Gtk-$(GTKVERSION) -DG_IR_SCANNING -DGTK \ +		--cflags-begin $(GTK_CFLAGS) -include gtk/gtk.h --cflags-end \  		--c-include Scintilla.h --c-include ScintillaWidget.h \ -		-n Scintilla --nsversion 0.1 --library scintilla -L$(PWD) \ -		../../include/Sci_Position.h ../../include/ScintillaWidget.h Scintilla-filtered.h \ +		-n Scintilla --nsversion 0.1 --library scintilla -L$(PWD) ../../include/ScintillaWidget.h \  		-o $@  Scintilla-0.1.typelib: Scintilla-0.1.gir @@ -41,9 +35,9 @@ clean:  	rm -f libscintilla.so Scintilla-0.1.gir Scintilla-0.1.typelib  	$(MAKE) -C ../../gtk clean -test: Scintilla-0.1.gir Scintilla-0.1.typelib +test: Scintilla-0.1.gir  	@echo Verifying Scintilla-0.1.gir file -	@diff $<.good $< || (echo "GIR FILE MISMATCH!"; exit 1) +	@diff $^.good $^ || (echo "GIR FILE MISMATCH!"; exit 1)  	@echo Launching gi-test.py python program  	GI_TYPELIB_PATH=$(PWD) LD_LIBRARY_PATH=$(PWD) \  		python $(PWD)/gi-test.py | 
