diff --git a/ghc/driver/ghc-iface.lprl b/ghc/driver/ghc-iface.lprl index 02c079391e47b4ec188aa3ccec5c082cb2e88161..491b2af7f9cb5538fc4a0b309c48646884c15392 100644 --- a/ghc/driver/ghc-iface.lprl +++ b/ghc/driver/ghc-iface.lprl @@ -124,9 +124,9 @@ sub constructNewHiFile { &readHiFile('new',$hsc_hi) unless $HiHasBeenRead{'new'} == 1; if ($Specific_hi_file eq '') { # -ohi is used even if module name != stem of filename. - ($hiname = $hifile_target) =~ s/([^\/]*\/)*(.*)\.$HiSuffix/$2/; + ($hiname = $hifile_target) = $1 if $hifile_target =~ /\/?([^\/\.]+)\.$HiSuffix/; if ($ModuleName{'new'} ne $hiname) { - ($hidir = $hifile_target) =~ s/([^\/]*\/)*.*\.$HiSuffix/$1/; + ($hidir = $hifile_target) =~ s/(.*)$hiname\.$HiSuffix/$1/; $hifile_target = $hidir . $ModuleName{'new'} . ".$HiSuffix"; } }