]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
glib-2.0: Add FileStream.read_line method
authorJürg Billeter <j@bitron.ch>
Mon, 27 Jul 2009 19:18:31 +0000 (21:18 +0200)
committerJürg Billeter <j@bitron.ch>
Mon, 27 Jul 2009 19:18:31 +0000 (21:18 +0200)
Based on patch by Frederik and Nicolas Joseph, fixes bug 582178.

vapi/glib-2.0.vapi

index bf93095ca27284cded6c7aa128a3cd285442496c..2d4c1a6a770acada0261e72bb71eb33e5016c933 100644 (file)
@@ -2373,6 +2373,9 @@ namespace GLib {
        [Compact]
        [CCode (cname = "FILE", free_function = "fclose", cheader_filename = "stdio.h")]
        public class FileStream {
+               [CCode (cname = "EOF", cheader_filename = "stdio.h")]
+               public const int EOF;
+
                [CCode (cname = "fopen")]
                public static FileStream? open (string path, string mode);
                [CCode (cname = "fdopen")]
@@ -2406,6 +2409,21 @@ namespace GLib {
                public int error ();
                [CCode (cname = "clearerr")]
                public void clearerr ();
+
+               public string? read_line () {
+                       int c;
+                       StringBuilder ret = null;
+                       while ((c = getc ()) != EOF) {
+                               if (ret == null) {
+                                       ret = new StringBuilder ();
+                               }
+                               if (c == '\n') {
+                                       break;
+                               }
+                               ret.append_c ((char) c);
+                       }
+                       return ret == null ? null : ret.str;
+               }
        }
 
        [CCode (lower_case_cprefix = "g_file_", cheader_filename = "glib/gstdio.h")]