re PR libfortran/35863 ([F2003] Implement ENCODING="UTF-8")

2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35863
	* gfortran.dg/utf8_1.f03: New test.
	* gfortran.dg/utf8_2.f03: New test.

From-SVN: r139148
This commit is contained in:
Jerry DeLisle 2008-08-16 03:42:54 +00:00
parent 3ae86bf4f4
commit 0ee02b1c5d
3 changed files with 53 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/35863
* gfortran.dg/utf8_1.f03: New test.
* gfortran.dg/utf8_2.f03: New test.
2008-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* gcc.dg/pr30551-6.c: Skip for SPU.

View File

@ -0,0 +1,31 @@
! { dg-do run }
! { dg-options "-fbackslash" }
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
program test1
implicit none
integer, parameter :: k4 = 4
character(kind=4, len=30) :: string1, string2
character(kind=1, len=30) :: string3
string1 = k4_"This is Greek: \u039f\u03cd\u03c7\u03af"
string2 = k4_"Jerry in Japanese is: \u30b8\u30a8\u30ea\u30fc"
open(10, encoding="utf-8", status="scratch")
write(10,'(a)') trim(string1)
write(10,*) string2
rewind(10)
string1 = k4_""
string2 = k4_""
string3 = "abcdefghijklmnopqrstuvwxyz"
read(10,'(a)') string1
read(10,'(a)') string2
if (string1 /= k4_"This is Greek: \u039f\u03cd\u03c7\u03af") call abort
if (len(trim(string1)) /= 20) call abort
if (string2 /= k4_" Jerry in Japanese is: \u30b8\u30a8\u30ea\u30fc")&
& call abort
if (len(string2) /= 30) call abort
rewind(10)
read(10,'(a)') string3
if (string3 /= "This is Greek: ????") call abort
end program test1
! The following examples require UTF-8 enabled editor to see correctly.
! Sample of Japanese characters.
! Οχ Sample of Greek characters.

View File

@ -0,0 +1,16 @@
! { dg-do run }
! { dg-options "-fbackslash" }
! Contributed by Tobias Burnus
program test2
integer,parameter :: ucs4 = selected_char_kind("iso_10646")
character(1,ucs4),parameter :: nen=char(int(z'5e74'),ucs4), & !year
gatsu=char(int(z'6708'),kind=ucs4), & !month
nichi=char(int(z'65e5'),kind=ucs4) !day
character(25,ucs4) :: string
open(10, encoding="utf-8", status="scratch")
write(10,1) 2008,nen,8,gatsu,10,nichi
1 format(i0,a,i0,a,i0,a)
rewind(10)
read(10,'(a)') string
if (string /= ucs4_"2008\u5e748\u670810\u65e5") call abort
end program test2