X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdriver%2Fghc-iface.lprl;fp=ghc%2Fdriver%2Fghc-iface.lprl;h=3fae1d10dd3ac050c3830c95ead4ef092c762422;hb=b2def40b3e9f66f139ecf070e1a829301e0fa772;hp=491b2af7f9cb5538fc4a0b309c48646884c15392;hpb=87e57c1ff5df3a5c3d5f67a9805f7300e7932ba3;p=ghc-hetmet.git diff --git a/ghc/driver/ghc-iface.lprl b/ghc/driver/ghc-iface.lprl index 491b2af..3fae1d1 100644 --- a/ghc/driver/ghc-iface.lprl +++ b/ghc/driver/ghc-iface.lprl @@ -121,13 +121,22 @@ sub constructNewHiFile { $new_hi, # Filename for new one $show_hi_diffs) = @_; local($hiname,$hidir); - + local($mod_name_dec); + &readHiFile('new',$hsc_hi) unless $HiHasBeenRead{'new'} == 1; + + # Sigh, we need decode the module name found in the interface file + # since that's the (base)name we want to use when outputting the + # interface file. + $mod_name_dec = $ModuleName{'new'}; + $mod_name_dec =~ s/zz/z/g; + $mod_name_dec =~ s/ZZ/Z/g; + if ($Specific_hi_file eq '') { # -ohi is used even if module name != stem of filename. ($hiname = $hifile_target) = $1 if $hifile_target =~ /\/?([^\/\.]+)\.$HiSuffix/; - if ($ModuleName{'new'} ne $hiname) { + if ( $mod_name_dec ne $hiname ) { ($hidir = $hifile_target) =~ s/(.*)$hiname\.$HiSuffix/$1/; - $hifile_target = $hidir . $ModuleName{'new'} . ".$HiSuffix"; + $hifile_target = $hidir . $mod_name_dec . ".$HiSuffix"; } } &readHiFile('old',$hifile_target) unless $HiHasBeenRead{'old'} == 1;