[glibmm/gmmproc-refactor] Add possibility to return several girdirs.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/gmmproc-refactor] Add possibility to return several girdirs.
- Date: Wed, 6 Jun 2012 07:11:11 +0000 (UTC)
commit 68218435812e95e32130bb7112483513b451b3b3
Author: Krzesimir Nowak <qdlacz gmail com>
Date: Sun Apr 15 03:22:39 2012 +0200
Add possibility to return several girdirs.
tools/pm/Gir/Config.pm.in | 4 ++--
tools/pm/Gir/Parser.pm | 21 ++++++++++++++++++++-
tools/pm/TODO | 3 +++
3 files changed, 25 insertions(+), 3 deletions(-)
---
diff --git a/tools/pm/Gir/Config.pm.in b/tools/pm/Gir/Config.pm.in
index 94c948e..070952c 100644
--- a/tools/pm/Gir/Config.pm.in
+++ b/tools/pm/Gir/Config.pm.in
@@ -23,9 +23,9 @@ package Gir::Config;
use strict;
use warnings;
-sub get_girdir ()
+sub get_girdirs ()
{
- return '@GIRDIR@';
+ return ['@GIRDIR@'];
}
1; # indicate proper module load.
diff --git a/tools/pm/Gir/Parser.pm b/tools/pm/Gir/Parser.pm
index 6bd8b47..ef77f52 100644
--- a/tools/pm/Gir/Parser.pm
+++ b/tools/pm/Gir/Parser.pm
@@ -261,7 +261,26 @@ sub parse_file ($$)
unless (exists $parsed_girs->{$filename})
{
- my $real_filename = File::Spec->catfile (Gir::Config::get_girdir, $filename);
+ my $girdirs = Gir::Config::get_girdirs;
+ my $real_filename = undef;
+
+ foreach my $girdir (@{$girdirs})
+ {
+ my $maybe_real_filename = File::Spec->catfile (Gir::Config::get_girdir, $filename);
+
+ if (-r $maybe_real_filename)
+ {
+ $real_filename = $maybe_real_filename;
+ last;
+ }
+ }
+
+ unless (defined $real_filename)
+ {
+# TODO: throw a runtime error.
+ die; # with horrible death!
+ }
+
my $xml_parser = $self->_create_xml_parser;
my $new_state = Gir::State->new ($real_filename, $xml_parser);
my $states_stack = $self->{'states_stack'};
diff --git a/tools/pm/TODO b/tools/pm/TODO
index 2d5d120..9e661eb 100644
--- a/tools/pm/TODO
+++ b/tools/pm/TODO
@@ -219,6 +219,9 @@
- Add a test C code and its C++ wrapper templates to check
wrapping correctness.
+- Gir::Config::get_girdir should return an array of paths.
+ VERIFY.
+
- git grep -n 'TODO' tools/pm
- Cleanup this TODO. :-)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]