-- --
-- GNAT COMPILER COMPONENTS --
-- --
--- M L I B . F I L --
+-- M L I B . F I L --
-- --
-- B o d y --
-- --
--- $Revision: 1.2 $
--- --
--- Copyright (C) 2001, Ada Core Technologies, Inc. --
+-- Copyright (C) 2001-2007, AdaCore --
-- --
-- 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- --
--- ware Foundation; either version 2, or (at your option) any later ver- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
--- Public License distributed with GNAT; see file COPYING. If not, write --
--- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
--- MA 02111-1307, USA. --
+-- Public License distributed with GNAT; see file COPYING3. If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
--- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
package Target renames MLib.Tgt;
+ ---------------
+ -- Append_To --
+ ---------------
+
+ function Append_To
+ (Filename : String;
+ Ext : String) return String
+ is
+ begin
+ if Ext'Length = 0 then
+ return Filename;
+
+ elsif Filename (Filename'Last) = '.' then
+ if Ext (Ext'First) = '.' then
+ return Filename & Ext (Ext'First + 1 .. Ext'Last);
+
+ else
+ return Filename & Ext;
+ end if;
+
+ else
+ if Ext (Ext'First) = '.' then
+ return Filename & Ext;
+
+ else
+ return Filename & '.' & Ext;
+ end if;
+ end if;
+ end Append_To;
+
------------
-- Ext_To --
------------
function Ext_To
(Filename : String;
- New_Ext : String := "")
- return String
+ New_Ext : String := "") return String
is
use Strings.Fixed;
+
J : constant Natural :=
Index (Source => Filename,
Pattern => ".",
-- Get_Ext --
-------------
- function Get_Ext (Filename : in String) return String is
+ function Get_Ext (Filename : String) return String is
use Strings.Fixed;
J : constant Natural :=
function Is_Archive (Filename : String) return Boolean is
Ext : constant String := Get_Ext (Filename);
-
begin
return Target.Is_Archive_Ext (Ext);
end Is_Archive;
-- Is_C --
----------
- function Is_C (Filename : in String) return Boolean is
+ function Is_C (Filename : String) return Boolean is
Ext : constant String := Get_Ext (Filename);
-
begin
return Target.Is_C_Ext (Ext);
end Is_C;
-- Is_Obj --
------------
- function Is_Obj (Filename : in String) return Boolean is
+ function Is_Obj (Filename : String) return Boolean is
Ext : constant String := Get_Ext (Filename);
-
begin
return Target.Is_Object_Ext (Ext);
end Is_Obj;