]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
gio-2.0: Add custom IOError.from_errno() to make it work as expected
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 12 Jul 2018 09:25:00 +0000 (11:25 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Thu, 12 Jul 2018 09:47:44 +0000 (11:47 +0200)
Fixes https://gitlab.gnome.org/GNOME/vala/issues/253

vapi/gio-2.0.vapi
vapi/metadata/Gio-2.0-custom.vala
vapi/metadata/Gio-2.0.metadata

index 441b220c6446f74bc073ecb4e598944acf52c196..48709338f892facd478d1c1dded50faf3a4821ad 100644 (file)
@@ -4649,8 +4649,12 @@ namespace GLib {
                CONNECTION_CLOSED,
                NOT_CONNECTED,
                MESSAGE_TOO_LARGE;
-               [CCode (cheader_filename = "gio/gio.h")]
-               public static unowned GLib.IOError from_errno (int err_no);
+               [CCode (cname = "vala_g_io_error_from_errno")]
+               public static GLib.IOError from_errno (int err_no) {
+                       return (GLib.IOError) new GLib.Error (GLib.IOError.quark (), GLib.IOError._from_errno (err_no), "%s", GLib.strerror (err_no));
+               }
+               [CCode (cheader_filename = "gio/gio.h", cname = "g_io_error_from_errno")]
+               public static int _from_errno (int err_no);
                [CCode (cheader_filename = "gio/gio.h")]
                public static GLib.Quark quark ();
        }
index 35379b69562f7f5278f5c14d46e3b69ce9ab3635..9f64bf37258b14a9cfcb7fc86f6ee046eacfa17c 100644 (file)
@@ -176,6 +176,13 @@ namespace GLib {
                public virtual GLib.Icon? from_tokens (string[] tokens, int version) throws GLib.Error;
        }
 
+       public errordomain IOError {
+               [CCode (cname = "vala_g_io_error_from_errno")]
+               public static GLib.IOError from_errno (int err_no) {
+                       return (GLib.IOError) new GLib.Error (GLib.IOError.quark (), GLib.IOError._from_errno (err_no), "%s", GLib.strerror (err_no));
+               }
+       }
+
        public delegate void SimpleActionActivateCallback (SimpleAction action, Variant? parameter);
        public delegate void SimpleActionChangeStateCallback (SimpleAction action, Variant value);
        [CCode (cheader_filename = "gio/gio.h", cname = "GAsyncReadyCallback", instance_pos = 2.9)]
index 106380453cff00f7b14c46701fa422bfb3bb73d8..1be074f95b93a139abaea6e5a80352cdcdabd305 100644 (file)
@@ -136,6 +136,7 @@ FileInfo
   .list_attributes nullable
 FileEnumerator
   .next_file nullable
+io_error_from_errno type="int" name="io_error__from_errno"
 IOStream
   .close virtual vfunc_name="close_fn" throws="GLib.IOError"
   .close_finish throws="GLib.IOError"