fix: display product names with an & properly #7831
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If a productName value contains an ampersand (&), then the character does not display correctly within the NSIS Installer window. For example, if the product name is "Joe & Bloggs", in the installer window "Joe Bloggs" is seen.
NSIS allows for this by allowing the Name attribute to have two values. One with the 'true' name, and one where the ampersand is doubled so that it displays correctly, e.g.
Name "Joe & Bloggs" "Joe && Bloggs"
The changes here use the macro !searchreplace to create a new variable with the doubled ampersand and then pass it into the Name attribute. If there is no duplication of the ampersand, the second argument is still passed in, but has no effect.
This would, of course, affect anybody who has already added a double ampersand to their productName to try to escape this.
For my project, I have used patch-package to apply this change for now.