[v2] ftell: seek to end only when there are unflushed bytes (BZ #17647)
diff mbox

Message ID 54859F6A.5050802@linux.vnet.ibm.com
State New
Headers show

Commit Message

Adhemerval Zanella Dec. 8, 2014, 12:54 p.m. UTC
On 05-12-2014 16:53, Andreas Schwab wrote:
> Adhemerval Zanella <azanella@linux.vnet.ibm.com> writes:
>
>> I see now my mistake. What about:
>>
>> diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
>> index 44a4fac..0bd9d01 100644
>> --- a/libio/tst-ftell-active-handler.c
>> +++ b/libio/tst-ftell-active-handler.c
>> @@ -365,7 +365,8 @@ do_ftell_test (const char *filename)
>>              reading.  */
>>           if (test_modes[i].fd_mode != O_WRONLY)
>>             {
>> -             char tmpbuf[data_len * char_len];
>> +             char tmpbuf[data_len * char_len]
>> +               __attribute__ ((__aligned__ (__alignof__ (wchar_t))));
> Or just use wchar_t instead.
>
> Andreas.
>
Right, this is what I pushed:

Patch
diff mbox

diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
index 44a4fac..6151554 100644
--- a/libio/tst-ftell-active-handler.c
+++ b/libio/tst-ftell-active-handler.c
@@ -84,7 +84,6 @@  static const char *char_data = "abcdef";
 static const wchar_t *wide_data = L"abcdef";
 static size_t data_len;
 static size_t file_len;
-static size_t char_len;
 
 typedef int (*fputs_func_t) (const void *data, FILE *fp);
 typedef void *(*fgets_func_t) (void *ws, int n, FILE *fp);
@@ -365,7 +364,7 @@  do_ftell_test (const char *filename)
 	     reading.  */
 	  if (test_modes[i].fd_mode != O_WRONLY)
 	    {
-	      char tmpbuf[data_len * char_len];
+	      wchar_t tmpbuf[data_len];
 
 	      rewind (fp);
 
@@ -657,7 +656,6 @@  do_test (void)
   fgets_func = (fgets_func_t) fgets;
   data = char_data;
   data_len = strlen (char_data);
-  char_len = sizeof (char);
   ret |= do_one_test (filename);
 
   /* Truncate the file before repeating the tests in wide mode.  */
@@ -680,7 +678,6 @@  do_test (void)
   fgets_func = (fgets_func_t) fgetws;
   data = wide_data;
   data_len = wcslen (wide_data);
-  char_len = sizeof (wchar_t);
   ret |= do_one_test (filename);
 
   return ret;