Archive: SectionIsSelected, unknown variable

SectionIsSelected, unknown variable

I try to use the "SectionIsSelected" macro from the logiclib.nsh, but it seems not to work with Sections that appear below the IF function.

In my example the MessageBox "g1o2_unselected" never appear. The compiler returns the warning:
unknown variable/constant "{g1o2}" detected, ignoring (macro:_SectionFlagIsSet:2)

So it appears that this IF only work when it is bellow the dependent section.
Is this a limitation of the SectionIsSelected macro? Is there a workaround?

Any help is appreciated

!include "Sections.nsh"
!include "logiclib.nsh"

Name "Section Selected"
OutFile "section_selected.exe"
RequestExecutionLevel user
; Pages
Page components
Page instfiles
; Sections

Section !Required
SectionIn RO

Section "Group 1 - Option 1" g1o1

${If} ${SectionIsSelected} ${g1o2}
MessageBox MB_OK g1o2_selected
MessageBox MB_OK g1o2_unselected


Section /o "Group 1 - Option 2" g1o2

${If} ${SectionIsSelected} ${g1o1}
MessageBox MB_OK g1o1_selected
MessageBox MB_OK g1o1_unselected


Where you have ${g1o2}, g1o2 has not yet been defined. You will either have to define it yourself before or just substitute it with the value it would end up having (the section index or 1 in this case).


I tried something similar, but this doesn't work also.
When i set the define above the sections

!define g1o2 1
the compiler exits with:

Section: "Group 1 - Option 2" ->(g1o2)
Error: "g1o2" already defined, can't assign section index!
Error in script "stdin" on line 33 -- aborting creation process
when i put the define below the sections
!define: "g1o2" already defined!
Error in script "stdin" on line 39 -- aborting creation process

If you're going to define it yourself, you have to remove the token from the Section line.