From 7b8ee2f629801241697a61ef140df073f551d330 Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Fri, 18 Mar 2005 12:50:30 +0100 Subject: [PATCH] re PR ada/19519 (GNAT Bug Box when reading a program with UTF-8 encoded enumeration literals) 2005-03-17 Robert Dewar PR ada/19519 * namet.adb (Copy_One_Character): Set proper wide character encoding for upper half character if we have upper half encoding. From-SVN: r96671 --- gcc/ada/namet.adb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/ada/namet.adb b/gcc/ada/namet.adb index d462d1152e5..b10696dc863 100644 --- a/gcc/ada/namet.adb +++ b/gcc/ada/namet.adb @@ -36,6 +36,7 @@ -- which is created manually from namet.ads and namet.adb. with Debug; use Debug; +with Opt; use Opt; with Output; use Output; with Tree_IO; use Tree_IO; with Widechar; use Widechar; @@ -299,7 +300,20 @@ package body Namet is and then Name_Buffer (Old + 1) /= '_' then Old := Old + 1; - Insert_Character (Character'Val (Hex (2))); + + -- If we have upper half encoding, then we have to set an + -- appropriate wide character sequence for this character. + + if Upper_Half_Encoding then + Widechar.Set_Wide (Char_Code (Hex (2)), New_Buf, New_Len); + + -- For other encoding methods, upper half characters can + -- simply use their normal representation. + + else + Insert_Character (Character'Val (Hex (2))); + end if; + -- WW (wide wide character insertion) -- 2.30.2