Some software with Trademarks in the name have a standard statement that people are supposed to use if they use the Trademark (e.g. Python's PSF Trademark Usage Policy) and often times, that statement includes double quotes ("), as in "Python" and the Python logos are trademarks or registered trademarks of…
, however placing these lines as is into your PortableApps.com Formatted app's App\AppInfo\appinfo.ini: [Details]:Trademarks line causes the creation of a PortableApps.com Installer of the package to fail with the following error:
Processing script file: "X:\PortableApps\AppNamePortable\Other\Source\PortableApps.comInstaller.nsi" (UTF8) Error: unterminated string parsing line at PortableApps.comInstallerConfig.nsh:39 !include: error in script: "PortableApps.comInstallerConfig.nsh" on line 39 Error in script "X:\PortableApps\AppNamePortable\Other\Source\PortableApps.comInstaller.nsi" on line 38 -- aborting creation process
This obviously can be worked around by simply removing the double quotes from the [Details]:Trademarks entry, but the error isn't exactly the easiest to understand, so someone who's new to NSIS & making PortableApps.com Format apps may not be able to figure out what's causing the error. Also, I think it would be better to simply allow the useage of double quotes (so people can just copy & paste the string the publisher supplies) than to figure out how to make this have a better error message.
This can easily be fixed, by adding a line containing the following to Other\Source\InstallerWizard.nsi
, immediately ahead of the ${WriteConfig} INSTALLERADDITIONALTRADEMARKS "$1"
line (In PA.cI v3.1.1 this is Line# 686, in v3.1.2 it's Line# 689).
${WordReplace} $1 "$\"" "$$\$\"" "+" $1
This is fixed in PortableApps.com Installer 3.3.2. I opted to convert them to single quotes as double-quotes in strings like that where they are not necessary could cause additional issues down the line. They're converted for the installer itself and updated in the appinfo.ini.
Sometimes, the impossible can become possible, if you're awesome!