Comment 10 for bug 1490906

Revision history for this message
Todd Richmond (toddrichmond) wrote :

--- intltool-update.in.orig 2018-09-21 13:34:51.366910791 -0700
+++ intltool-update.in 2018-09-21 13:32:49.378908000 -0700
@@ -1062,13 +1062,15 @@ sub SubstituteVariable
  }
     }

- if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
+ if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/)
     {
  my $rest = $3;
  my $untouched = $1;
  my $sub = "";
         # Ignore recursive definitions of variables
- $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
+ my $m2 = $2;
+ my $var2 = $varhash{$m2};
+ $sub = $var2 if defined $var2 and $var2 !~ /\$\{?\Q$m2\E\}?/;

  return SubstituteVariable ("$untouched$sub$rest");
     }
@@ -1190,10 +1192,10 @@ sub FindPackageName
  $name =~ s/\(+$//g;
  $version =~ s/\(+$//g;

- $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
- $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
- $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
- $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/);
+ $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/);
+ $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
     }

     if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m)
@@ -1219,11 +1221,11 @@ sub FindPackageName
  $version =~ s/\(+$//g;
         $bugurl =~ s/\(+$//g if (defined $bugurl);

- $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
- $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
- $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
- $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
- $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/);
+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/);
+ $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/);
+ $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
+ $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/);
     }

     # \s makes this not work, why?
[x86_64/gcc-13.1.0-pps-8.21.0: xtools@xenon15:~/build/eng/pps/branches/8.21.0/tools/xtools]