X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fada%2Fosint.adb;h=2dc5c3215092934337c29b2db484407da2349e93;hp=e2e559fac7e33eadce1087a25cafca86163aef64;hb=59fb70e4ea6b44469da6d32bb3e23cd684515546;hpb=6eda20644706606b9ede9c6bfb557ab55ee897ff diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb index e2e559fac7e..2dc5c321509 100644 --- a/gcc/ada/osint.adb +++ b/gcc/ada/osint.adb @@ -1008,12 +1008,37 @@ package body Osint is end if; end loop; - for J in reverse Cindex1 .. Cindex2 loop - if Command_Name (J) = '.' then - Cindex2 := J - 1; - exit; + -- Command_Name(Cindex1 .. Cindex2) is now the equivalent of the + -- POSIX command "basename argv[0]" + + -- Strip off any versioning information such as found on VMS. + -- This would take the form of TOOL.exe followed by a ";" or "." + -- and a sequence of one or more numbers. + + if Command_Name (Cindex2) in '0' .. '9' then + for J in reverse Cindex1 .. Cindex2 loop + + exit when Command_Name (J) not in '0' .. '9'; + + if Command_Name (J) = '.' or Command_Name (J) = ';' then + Cindex2 := J - 1; + exit; + end if; + end loop; + end if; + + -- Strip off any executable extension (usually nothing or .exe) + -- but formally reported by autoconf in the variable EXEEXT + + if Cindex2 - Cindex1 >= 4 then + if To_Lower (Command_Name (Cindex2 - 3)) = '.' + and then To_Lower (Command_Name (Cindex2 - 2)) = 'e' + and then To_Lower (Command_Name (Cindex2 - 1)) = 'x' + and then To_Lower (Command_Name (Cindex2)) = 'e' + then + Cindex2 := Cindex2 - 4; end if; - end loop; + end if; Name_Len := Cindex2 - Cindex1 + 1; Name_Buffer (1 .. Name_Len) := Command_Name (Cindex1 .. Cindex2);