Errors in the documentation
I went trough the NSIS documentation and discovered all sorts of inconsequences in it. I wrote them down.
The following (long) list contains all flaws or things that aren't clear to me that I've discovered this time. I just hope that someone takes the time to fix them:
4.3 Labels
Please specify which characters are ALLOWED in a label's name: [a-z][A-Z][_] perhaps? Spaces? May/must a label be quoted when it may contain spaces?
4.5.2 Page Options & 4.5.6 PageEx
What syntax do you have to use when you want to use SubCaption in a PageEx block? Must the pagenumber be specified (is it ignored)?
4.7.1.1 Function
Is a function's name really optional? May the function's name contain spaces? Rare characters? May it be quoted?
4.8.1.4 BGGradient
If BGGradient is used without any parameters, then nothing happens, right? If not, specify what default color values are used.
4.8.1.9 CompletedText
This should be:
text
4.8.1.10 ComponentText
This should be:
[text [subtext [subtext2]]]
Are no parameters really allowed? I'd say that at least the first parameter should be required.
4.8.1.14 DirText
This should be:
[text [subtext [browse_button_text [browse_dlg_text]]]]
Are no parameters really allowed? I'd say that at least the first parameter should be required.
4.8.1.19 InstallColors
This should be:
/windows | (foreground background)
4.8.1.26 LicenseForceSelection
This should be:
((checkbox [accept_text]) | (radiobuttons [accept_text] [decline_text]) | off)
4.8.1.28 MiscButtonText
This should be:
[back_button_text [next_button_text [cancel_button_text [close_button_text]]]]
Are no parameters really allowed? Nothing changes then, right? I'd say that at least the first parameter should be required.
4.8.1.36 SpaceTexts
This should be:
[req_text [avail_text]]
Are no parameters really allowed? Nothing changes then, right? I'd say that at least the first parameter should be required.
4.8.1.38 UninstallButtonText
This should be:
button_text
4.9.1.5 File
This should be:
[/nonfatal] [/a] (([/r] (file|wildcard) [...]) | (/oname=file.dat infile.dat))
4.9.4.11 IfRebootFlag
This should be:
[jump_if_set [jump_if_not_set]]
Are no parameters really allowed? Nothing changes then, right? I'd say that at least the first parameter should be required.
4.9.4.12 IfSilent
This should be:
[jump_if_silent [jump_if_not]]
Are no parameters really allowed? Nothing changes then, right? I'd say that at least the first parameter should be required.
4.9.4.13 IntCmp
This should be:
val1 val2 jump_if_equal [jump_if_val1_less [jump_if_val1_more]]
4.9.4.14 IntCmpU
This should be:
val1 val2 jump_if_equal [jump_if_val1_less [jump_if_val1_more]]
4.9.4.15 MessageBox
This should be:
mb_option_list messagebox_text [return_check jumpto [return_check_2 jumpto_2]]
4.9.14.2 CreateFont
This should be:
user_var(handle output) face_name [height [weight]] [/ITALIC] [/UNDERLINE] [/STRIKE]
4.9.14.5 FindWindow
This should be:
user_var(hwnd output) windowclass [windowtitle [windowparent [childafter]]]
4.9.14.14 SetCtlColors
This should be:
hwnd [/BRANDING] [text_color [transparent|bg_color]]
In the most common error are the 'optional-brackets' misplaced. E.g.
[text1] [text2]
should be:
[text1 [text2]]
since the compiler can't see the difference between text1 and text2.
If you want to specify text2 only, then you'll have to enter: (example)
Command '' 'Text 2'