Library.nsh bug
While trying to register an OCX file, I encountered a bug in Library.nsh. It only manifested when I used the InstalLib macro with REBOOT_*, and not with NOREBOOT_*. The code which causes the problem is in the macro __InstallLib_Helper_InitSession, around line 51:
!define __InstallLib_Helper_InitSession_Label "${__FILE__}${__LINE__}"
Normally, this works, but my installer file is named 3D+PRO.NSI, and labels cannot start with numbers. A fix is to change the above line to:
!define __InstallLib_Helper_InitSession_Label "LBL_${__FILE__}${__LINE__}"
The difference is the "LBL_" prefix. With this change, the code works with installers starting with a number (or any other character disallowed as an initial character in a label).