Inno Setup #include directive

I just discovered the #include directive in Inno Setup is case sensitive. If you use #INCLUDE you get an error that says, in part:
To be able to use directives other than '#include'
you need to install the Inno Setup Preprocessor (ISPP)
As a VFP developer I'm accustomed to case insensitive syntax, so I had to read the error message a couple of times and double check my script before I understood that #INCLUDE is not the same as #include. The #include directive is a native part of Inno Setup and does not require the ISPP.

I checked a couple of other directives in Inno Setup and found they are not case sensitive. For example, the compiler accepts APPID and SOURCEDIR in the Setup section as well as the more conventional AppID and SourceDir, and in the Files section parameters such as Source and DestDir are not case sensitive either. I'm not sure why #include should be different, but it is.


1 comment:

Anonymous said...

I would think the #anything would automatically be checked against a pre-processor directive. If it is "include", it gets processed internally, while everything else gets 'outsourced' :-)

I've seen this in other tools both in Windows and Unix realm. So while inconvenient, it's not necessarily uncommon.