1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- M D L L . F I L E S -- 6-- -- 7-- B o d y -- 8-- -- 9-- Copyright (C) 1992-2018, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- 17-- for more details. You should have received a copy of the GNU General -- 18-- Public License distributed with GNAT; see file COPYING3. If not, go to -- 19-- http://www.gnu.org/licenses for a complete copy of the license. -- 20-- -- 21-- GNAT was originally developed by the GNAT team at New York University. -- 22-- Extensive contributions were provided by Ada Core Technologies Inc. -- 23-- -- 24------------------------------------------------------------------------------ 25 26-- Simple services used by GNATDLL to deal with Filename extension 27 28with Ada.Strings.Fixed; 29 30package body MDLL.Fil is 31 32 use Ada; 33 34 ------------- 35 -- Get_Ext -- 36 ------------- 37 38 function Get_Ext (Filename : String) return String is 39 use Strings.Fixed; 40 I : constant Natural := Index (Filename, ".", Strings.Backward); 41 begin 42 if I = 0 then 43 return ""; 44 else 45 return Filename (I .. Filename'Last); 46 end if; 47 end Get_Ext; 48 49 ------------ 50 -- Is_Ali -- 51 ------------ 52 53 function Is_Ali (Filename : String) return Boolean is 54 begin 55 return Get_Ext (Filename) = ".ali"; 56 end Is_Ali; 57 58 ------------ 59 -- Is_Obj -- 60 ------------ 61 62 function Is_Obj (Filename : String) return Boolean is 63 Ext : constant String := Get_Ext (Filename); 64 begin 65 return Ext = ".o" or else Ext = ".obj"; 66 end Is_Obj; 67 68 ------------ 69 -- Ext_To -- 70 ------------ 71 72 function Ext_To 73 (Filename : String; 74 New_Ext : String := No_Ext) 75 return String 76 is 77 use Strings.Fixed; 78 I : constant Natural := Index (Filename, ".", Strings.Backward); 79 begin 80 if I = 0 then 81 return Filename; 82 83 else 84 if New_Ext = "" then 85 return Filename (Filename'First .. I - 1); 86 else 87 return Filename (Filename'First .. I - 1) & '.' & New_Ext; 88 end if; 89 end if; 90 end Ext_To; 91 92end MDLL.Fil; 93