Fix issue 2587, where r20600 broke parameter substitution for the diff URLs when mappings were not used.
Fix issue 2587, where r20600 broke parameter substitution for the diff
URLs when mappings were not used.

For the diff URLs, defer the parameter substitution until the URLs are
needed, so that the parameters from the configuration file and from
the path and revision in the commit may be joined.

Patch by: blair
Review by: cmpilato

* tools/hook-scripts/mailer/mailer.py
  (Config.get): If a value is mapped, then apply the parameter
    substitution to the value returned from the mapping.  This allows
    DiffURLSelections._get_url to not have to do this work.
  (DiffURLSelections.__init): Do not get the diff_add_url,
    diff_copy_url, diff_delete_url and the diff_modify_url values,
    just cache the configuration, group and parameter objects for
    later use.
  (DiffURLSelections._get_url): Given the action name, merge the
    cached parameters with the parameters for the path and revision in
    the commit and generate the URL.
  (DiffURLSelections.get_add_url, DiffURLSelections.get_copy_url,
   DiffURLSelections.get_delete_url, DiffURLSelections.get_modify_url):
    Helper functions that call DiffURLSelections._get_url with the
    appropriate action name.
  (DiffGenerator._gen_url): Delete.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion