OSDN Git Service

PR other/52438
[pf3gnuchains/gcc-fork.git] / gcc / ada / s-imgcha.adb
index dd3b4d9..67613dd 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -124,22 +124,13 @@ package body System.Img_Char is
 
       if V in C0_Range then
          S (1 .. 3) := C0 (V);
-
-         if S (3) = ' ' then
-            P := 2;
-         else
-            P := 3;
-         end if;
+         P := (if S (3) = ' ' then 2 else 3);
 
       elsif V in C1_Range then
          S (1 .. 3) := C1 (V);
 
          if S (1) /= 'r' then
-            if S (3) = ' ' then
-               P := 2;
-            else
-               P := 3;
-            end if;
+            P := (if S (3) = ' ' then 2 else 3);
 
          --  Special case, res means RESERVED_nnn where nnn is the three digit
          --  decimal value corresponding to the code position (more efficient
@@ -167,4 +158,23 @@ package body System.Img_Char is
       end if;
    end Image_Character;
 
+   ------------------------
+   -- Image_Character_05 --
+   ------------------------
+
+   procedure Image_Character_05
+     (V : Character;
+      S : in out String;
+      P : out Natural)
+   is
+      pragma Assert (S'First = 1);
+   begin
+      if V = Character'Val (16#00AD#) then
+         P := 11;
+         S (1 .. P) := "SOFT_HYPHEN";
+      else
+         Image_Character (V, S, P);
+      end if;
+   end Image_Character_05;
+
 end System.Img_Char;