[gnome-shell] Work around g-ir-scanner problem with Gdk.Rectangle
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Work around g-ir-scanner problem with Gdk.Rectangle
- Date: Wed, 7 Jul 2010 18:45:34 +0000 (UTC)
commit 174caf00160d0607ac60140a7ae48a910b414f5b
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Mon Jul 5 17:08:36 2010 -0400
Work around g-ir-scanner problem with Gdk.Rectangle
g-ir-scanner is currently buggy and confuses the Gdk.Rectangle alias
with MetaRectangle. Since this is moderately hard to fix in
gobject-introspection and the fix would conflict with in-progress
changes, work around by doing a 'sed job' on the generated Meta.gir.
https://bugzilla.gnome.org/show_bug.cgi?id=623640
src/Makefile.am | 6 +++++-
src/fix-meta-rectangle.py | 21 +++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index b063722..4fea30d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -210,8 +210,12 @@ Shell-0.1.gir: $(mutter) $(G_IR_SCANNER) St-1.0.gir libgnome-shell.la Makefile
$(addprefix $(srcdir)/,$(libgnome_shell_la_gir_sources)) \
$(libgnome_shell_la_CPPFLAGS) \
-I $(srcdir) \
- -o $@
+ -o $ tmp && \
+ $(PYTHON) $(srcdir)/fix-meta-rectangle.py $ tmp $ tmp2 && \
+ rm $ tmp && \
+ mv $ tmp2 $@
CLEANFILES += Shell-0.1.gir
+EXTRA_DIST += fix-meta-rectangle.py
# The dependency on libgnome-shell.la here is because g-ir-compiler opens it
# (not the fake library, since we've already done the rewriting)
diff --git a/src/fix-meta-rectangle.py b/src/fix-meta-rectangle.py
new file mode 100755
index 0000000..560d892
--- /dev/null
+++ b/src/fix-meta-rectangle.py
@@ -0,0 +1,21 @@
+#!/usr/bin/python
+import re
+import sys
+
+# gobject-introspection currently has a bug where an alias like
+# 'typedef GdkRectangle cairo_rect_int_t' is stored un-namespaced,
+# so it is taken to apply to all *Rectangle types. Fixing this
+# requires a significant rework of g-ir-scanner, so for the moment
+# we fix up the output using this script.
+#
+# https://bugzilla.gnome.org/show_bug.cgi?id=622609
+
+GDK_RECTANGLE = re.compile(r'Gdk\.Rectangle')
+META_RECTANGLE = re.compile(r'MetaRectangle')
+
+i = open(sys.argv[1], 'r')
+o = open(sys.argv[2], 'w')
+for line in i:
+ if GDK_RECTANGLE.search(line) and META_RECTANGLE.search(line):
+ line = re.sub('Gdk.Rectangle', 'Meta.Rectangle', line)
+ o.write(line)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]