add bindings for g_get_system_*_dirs
authorJuerg Billeter <j@bitron.ch>
Sun, 2 Mar 2008 11:09:09 +0000 (11:09 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sun, 2 Mar 2008 11:09:09 +0000 (11:09 +0000)
2008-03-02  Juerg Billeter  <j@bitron.ch>

* vapi/glib-2.0.vapi: add bindings for g_get_system_*_dirs

* vala/valacodecontext.vala: use g_get_system_data_dirs to find
  VAPI files, should make valac relocatable on Windows

svn path=/trunk/; revision=1083

ChangeLog
vala/valacodecontext.vala
vapi/glib-2.0.vapi

index 138ffb7..78b2913 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-03-02  Jürg Billeter  <j@bitron.ch>
 
+       * vapi/glib-2.0.vapi: add bindings for g_get_system_*_dirs
+
+       * vala/valacodecontext.vala: use g_get_system_data_dirs to find
+         VAPI files, should make valac relocatable on Windows
+
+2008-03-02  Jürg Billeter  <j@bitron.ch>
+
        * vapi/glib-2.0.vapi: add dir separator bindings,
          fix g_regex_escape_string binding
 
index 3f1f5c0..241c74d 100644 (file)
@@ -402,14 +402,11 @@ public class Vala.CodeContext : Object {
                        return filename;
                }
 
-               filename = Path.build_filename ("/usr/local/share/vala/vapi", basename);
-               if (FileUtils.test (filename, FileTest.EXISTS)) {
-                       return filename;
-               }
-
-               filename = Path.build_filename ("/usr/share/vala/vapi", basename);
-               if (FileUtils.test (filename, FileTest.EXISTS)) {
-                       return filename;
+               foreach (string vapidir in Environment.get_system_data_dirs ()) {
+                       var filename = Path.build_filename (vapidir, "vala/vapi", basename);
+                       if (FileUtils.test (filename, FileTest.EXISTS)) {
+                               return filename;
+                       }
                }
 
                return null;
index 1107fee..a2862c2 100644 (file)
@@ -1672,6 +1672,10 @@ namespace GLib {
                public static weak string get_user_name ();
                [CCode (cname = "g_get_user_data_dir")]
                public static weak string get_user_data_dir ();
+               [CCode (cname = "g_get_system_data_dirs"), NoArrayLength]
+               public static weak string[] get_system_data_dirs ();
+               [CCode (cname = "g_get_system_config_dirs"), NoArrayLength]
+               public static weak string[] get_system_config_dirs ();
                [CCode (cname = "g_get_host_name")]
                public static weak string! get_host_name ();
                [CCode (cname = "g_get_home_dir")]