------- Comment #3 from jvdelisle at gcc dot gnu dot org 2010-07-20 04:35
-------
Kai, would you test this for me please.
Index: ftell_3.f90
===================================================================
--- ftell_3.f90 (revision 162291)
+++ ftell_3.f90 (working copy)
@@ -3,9 +3,10 @@
! Contributed by Janne Blomqvist, Manfred Schwarb
! and Dominique d'Humieres.
program ftell_3
- integer :: i
+ integer :: i, j
+ character(1) :: ch
character(len=99) :: buffer
- open(10, form='formatted', status='scratch', position='rewind')
+ open(10, form='formatted', position='rewind')
write(10, '(a)') '123456'
write(10, '(a)') '789'
write(10, '(a)') 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
@@ -13,16 +14,29 @@
rewind(10)
read(10, '(a)') buffer
call ftell(10, i)
- if(i /= 7) then
- call abort()
+! Expected: On '\n' systems: 7, on \r\n systems: 8
+ if(i /= 7 .and. i /= 8) then
+ call abort
end if
read(10,'(a)') buffer
if (trim(buffer) /= "789") then
call abort()
end if
- call ftell(10,i)
- if (i /= 11) then
- call abort()
+ call ftell(10,j)
+ close(10)
+ open(10, access="stream")
+! Expected: On '\n' systems: 11, on \r\n systems: 13
+ if (i == 7) then
+ read(10, pos=7) ch
+ if (ch /= char(10)) call abort
+ if (j /= 11) call abort
end if
- close(10)
+ if (i == 8) then
+ read(10, pos=7) ch
+ if (ch /= char(13)) call abort
+ read(10) ch
+ if (ch /= char(10)) call abort
+ if (j /= 13) call abort
+ end if
+ close(10, status="delete")
end program ftell_3
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44697