Bug 547481 – g_data_input_stream_read_line behaves not as stated in the
authorMatthias Clasen <mclasen@redhat.com>
Fri, 28 Nov 2008 07:42:48 +0000 (07:42 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 28 Nov 2008 07:42:48 +0000 (07:42 +0000)
2008-11-28  Matthias Clasen  <mclasen@redhat.com>

        Bug 547481 – g_data_input_stream_read_line behaves not as stated in
        the docs

        * gdatainputstream.c (g_data_input_stream_read_line): Behave as
        documented and include the line end in the returned string.
        Pointed out by Paul Pogonyshev.

        * tests/data-input-stream.c: Fix the read_line test to test the
        documented behaviour.

svn path=/trunk/; revision=7694

gio/ChangeLog
gio/gdatainputstream.c
gio/tests/data-input-stream.c

index b4a408e9508c37f8d29ad51073bf7c949f091825..e3bd9b60ee7df21d1dabcdc5da5ab5e61d5c2efd 100644 (file)
@@ -1,3 +1,15 @@
+2008-11-28  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 547481 – g_data_input_stream_read_line behaves not as stated in
+       the docs
+
+       * gdatainputstream.c (g_data_input_stream_read_line): Behave as
+       documented and include the line end in the returned string. 
+       Pointed out by Paul Pogonyshev.
+
+       * tests/data-input-stream.c: Fix the read_line test to test the
+       documented behaviour.
+
 2008-11-28  Matthias Clasen  <mclasen@redhat.com>
 
        * gdesktopappinfo.c (g_app_info_can_delete): Only allow deleting
index 2c8bcdee386e564720eff0b6ad2462df52204214..967c67bb423b056438560151a12abc7c4be10e84 100644 (file)
@@ -803,7 +803,7 @@ g_data_input_stream_read_line (GDataInputStream  *stream,
   if (length)
     *length = (gsize)found_pos;
   g_warn_if_fail (res == found_pos + newline_len);
-  line[found_pos] = 0;
+  line[found_pos + newline_len] = 0;
   
   return line;
 }
index d1385caf783367fb59774b0b8ab7d2a8a1e04c28..5a44148aef9588791b89885aca05296a01ca0b72 100644 (file)
@@ -87,8 +87,12 @@ test_read_lines (GDataStreamNewlineType newline_type)
       data = g_data_input_stream_read_line (G_DATA_INPUT_STREAM (stream), &length, NULL, &error);
       if (data)
        {
-         g_assert_cmpstr (data, ==, lines[line]);
+          char *expected;
+
+          expected = g_strconcat (lines[line], endl[newline_type], NULL);
+         g_assert_cmpstr (data, ==, expected);
          g_assert_no_error (error);
+          g_free (expected);  
          line++;
        }
     }