diff options
author | Johan Dahlin <johan@gnome.org> | 2012-04-09 12:24:49 -0300 |
---|---|---|
committer | Johan Dahlin <jdahlin@litl.com> | 2012-04-09 12:24:49 -0300 |
commit | 47d4e9509a8ffde1cab4a6f8d2be4ce232ba1cfb (patch) | |
tree | 33f78cab3ccc42687411161be3cd05e08e847bea /giscanner/sourcescanner.c | |
parent | e63866c2aea4338667a7e86c46f05864a991000d (diff) | |
download | gobject-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
Diffstat (limited to 'giscanner/sourcescanner.c')
-rw-r--r-- | giscanner/sourcescanner.c | 12 |
1 files changed, 11 insertions, 1 deletions
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 * |