summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2012-04-09 12:24:49 -0300
committerJohan Dahlin <jdahlin@litl.com>2012-04-09 12:24:49 -0300
commit47d4e9509a8ffde1cab4a6f8d2be4ce232ba1cfb (patch)
tree33f78cab3ccc42687411161be3cd05e08e847bea
parente63866c2aea4338667a7e86c46f05864a991000d (diff)
downloadgobject-introspection-47d4e9509a8ffde1cab4a6f8d2be4ce232ba1cfb.tar.gz
Compare filenames using g_file_equal()
Makes it work on case-sensitive file systems such as HFS+. https://bugzilla.gnome.org/show_bug.cgi?id=667405
-rw-r--r--Makefile-giscanner.am4
-rw-r--r--giscanner/giscannermodule.c4
-rw-r--r--giscanner/sourcescanner.c12
3 files changed, 17 insertions, 3 deletions
diff --git a/Makefile-giscanner.am b/Makefile-giscanner.am
index f20135ae..d4d2a620 100644
--- a/Makefile-giscanner.am
+++ b/Makefile-giscanner.am
@@ -20,8 +20,8 @@ libgiscanner_la_SOURCES = \
giscanner/scannerparser.y \
giscanner/grealpath.h
libgiscanner_la_CPPFLAGS = -I$(top_srcdir)/girepository -I$(top_srcdir)/giscanner
-libgiscanner_la_LIBADD = $(GOBJECT_LIBS)
-libgiscanner_la_CFLAGS = $(GOBJECT_CFLAGS)
+libgiscanner_la_LIBADD = $(GOBJECT_LIBS) $(GIO_LIBS)
+libgiscanner_la_CFLAGS = $(GOBJECT_CFLAGS) $(GIO_CFLAGS)
# Python module
pkgpyexecdir = $(pkglibdir)/giscanner
diff --git a/giscanner/giscannermodule.c b/giscanner/giscannermodule.c
index 81adbd8c..0da20f18 100644
--- a/giscanner/giscannermodule.c
+++ b/giscanner/giscannermodule.c
@@ -38,6 +38,8 @@
#include <windows.h>
#endif
+#include <glib-object.h>
+
DL_EXPORT(void) init_giscanner(void);
#define NEW_CLASS(ctype, name, cname) \
@@ -720,6 +722,8 @@ init_giscanner(void)
PyObject *m, *d;
gboolean is_uninstalled;
+ g_type_init ();
+
/* Hack to avoid having to create a fake directory structure; when
* running uninstalled, the module will be in the top builddir,
* with no _giscanner prefix.
diff --git a/giscanner/sourcescanner.c b/giscanner/sourcescanner.c
index 1ae14bc3..1b775b46 100644
--- a/giscanner/sourcescanner.c
+++ b/giscanner/sourcescanner.c
@@ -22,6 +22,7 @@
#include "sourcescanner.h"
#include <string.h>
+#include <gio/gio.h>
GISourceSymbol *
gi_source_symbol_new (GISourceSymbolType type, const gchar *filename, int line)
@@ -242,15 +243,22 @@ gi_source_scanner_add_symbol (GISourceScanner *scanner,
{
gboolean found_filename = FALSE;
GList *l;
+ GFile *current_file;
g_assert (scanner->current_filename);
+ current_file = g_file_new_for_path (scanner->current_filename);
+
for (l = scanner->filenames; l != NULL; l = l->next)
{
- if (strcmp (l->data, scanner->current_filename) == 0)
+ GFile *file = g_file_new_for_path (l->data);
+
+ if (g_file_equal (file, current_file))
{
found_filename = TRUE;
+ g_object_unref (file);
break;
}
+ g_object_unref (file);
}
if (found_filename || scanner->macro_scan)
@@ -275,6 +283,8 @@ gi_source_scanner_add_symbol (GISourceScanner *scanner,
default:
break;
}
+
+ g_object_unref (current_file);
}
GSList *