[Bug ada/12523] New: "Ada.Text_IO.Enumeration_IO" doesn't convert its output correctly to lower case, when the enumeration contains non-ISO-646 characters.
sparre at nbi dot dk
gcc-bugzilla@gcc.gnu.org
Mon Oct 6 13:36:00 GMT 2003
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12523
Summary: "Ada.Text_IO.Enumeration_IO" doesn't convert its output
correctly to lower case, when the enumeration contains
non-ISO-646 characters.
Product: gcc
Version: 3.2.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sparre at nbi dot dk
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: linux-x86
GCC target triplet: linux-x86
It appears that "Ada.Text_IO.Enumeration_IO" doesn't convert its output
correctly to lower case, when the enumeration contains non-ISO-646 characters.
It appears that the reason for the problem is an extremely ugly hack in
"Ada.Text_IO.Enumeration_AUX". I suggest that the OS/2 specific problems in
"Ada.Characters.Handling.To_Upper" and "Ada.Characters.Handling.To_Lower" are
corrected and that the local versions of "To_Upper" and "To_Lower" are removed
from "Ada.Text_IO.Enumeration_AUX".
* A.3.2(25) and A.3.2(26) contains the definition of lower-case and
upper-case letters.
* A.10.10(10) and A.10.10(11) explains that Ada.Text_IO.Enumeration_IO.Put
should should output in lower-case or upper-case depending on the parameter
Set.
==============================================================================
GNAT version:
GNATMAKE 3.2.2 20030222 (3.2.2-4) Copyright 1995-2001 Free Software Foundation,
Inc.
==============================================================================
Output:
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: Ã
==============================================================================
Expected output:
Upper case: Ã
Lower case: á
Upper case: Ã
Lower case: ð
Upper case: Ã
Lower case: Ã
Upper case: Ã
Lower case: ó
Upper case: Ã
Lower case: ú
Upper case: Ã
Lower case: ý
Upper case: Ã
Lower case: æ
Upper case: Ã
Lower case: ø
==============================================================================
Source code:
--
with Ada.Text_IO; use Ada.Text_IO;
procedure Example is
type Some_Non_ASCII_Letters is (á, ð, Ã, ó, ú, ý, æ, ø);
package Non_ASCII_Letter_Text_IO is
new Enumeration_IO (Enum => Some_Non_ASCII_Letters);
use Non_ASCII_Letter_Text_IO;
begin
for Letter in Some_Non_ASCII_Letters loop
Put (Item => "Upper case: ");
Put (Item => Letter, Set => Upper_Case);
New_Line;
Put (Item => "Lower case: ");
Put (Item => Letter, Set => Lower_Case);
New_Line;
end loop;
end Example;
--
More information about the Gcc-bugs
mailing list